Olá Denis!
Estava usando a Lua 5.4.2 e atualizei pra a 5.4.4, apresentando o mesmo comportamento.
O gcc é 5.1.0
(tdm64-1) no Windows (mingw). Realmente ele é meio caidão, mas não tive tempo de compilar num mais moderno (no Linux, por exemplo).
Quanto ao código, acho meio difícil pinçar diretamente da minha aplicação, pois está bem intrincado (acho que vai mais confundir, do que esclarecer). Acho melhor tentar fazer um programa específico só pra testa esta condição. Em resumo, o caminho até o erro foi:
- cria um estado (L = luaL_newstate() )
- abre as bibliotecas (luaL_openlibs(L) ) -> pode ser opcional
- cria uma thread (T = lua_newthread(L)), pra ser o espaço de execução principal
- carrega um chunk (luaL_loadfile(T, ... ou luaL_loadstring(T, ...), com a função que usa o lua_yield
- chama a função com o lua_pcallk(T, ...) - a função de continuação não chega a ser chamada.
Um abraço.