FSM это более общий паттерн. А для асинхронных систем давно уже придуманы и используются основные три шаблона:
Mutex,
Semafor,
Condition variable (там довольно нативно описано, но всё реализуется и в AS3 на Worker'ах). На основе которых можно решить любой вопрос синхронизации/асинхронизации и взаимодействия друг с другом. А иерархии классов, последовательность выполнения и прочее это всё мишура - у каждого всё по своему, как удобнее, под задачу. В комбайне смысла не вижу, потому что сделать обще не получится никогда, так как вариантов взаимодействия тьма. Проще посмотреть на задачу, рассмотреть варианты и нарисовать схему (какой производительный, какой масштабируемый, какой узкий, какой широкий, какой понятный), и написать оперируя простыми инструментами.