Полностью поддерживаю, что это ужас.
Так же данное решение оказалось достаточно медленным, что вызывало падение кадров с 200 до 40, по этому пришлось приделывать выполнение Lua в отдельном потоке. :(

Возникли ли какие-нибудь сложности с выполнением в отдельном потоке?

используйте luajit, в чем проблема?