:) При моём подходе, оказывается есть еще одна вкусняшка:
exceptions. Проверки, вынесенные до PT_BEGIN, выполняются каждый
запуск, вне зависимости от текущего состояния автомата, и позволяют
по goto перейти в какое-то другое состояние, не загромождая текст
основной логики.