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