At first glance, my impression is that Go would be an awkward partner for Lua -- goroutines like to be lightweight; while the main route for maintaining thread safety in lua is to have a unique state for each thread.
It isn't obvious. I've done a convenient reflection-based way to use Lua from Go (luar) and I'm not sure how to go further and make a happy marriage between coroutines and goroutines. To be safe, one does need unique Lua states, and then the reasonable thing would be to only share data using channels - not a million miles from LuaLanes.
As for the language, I picked up the basics quickly and tend to use it for binary data processing where I would have earlier used C.