Ну, прелесть Lua именно как языка - поддержка корутин "из коробки".
Но цена за это обычно кусается, потому что это то же самое, что
выделение ещё одного стека, но писать асинхронный код в
однопоточном стиле - бесценно. В остальном - в языке есть всё, чего ждешь от больших братьев, но ценой крошечнего рантайма. Единственная вещь, которой не хватало - отложенных деструкторов - доложили в Lua 5.4.