Thanks for the link I had not seen this before.
I actually have my own FSM framework as well for various reasons, but I liked Qp's approach to 'active objects' and a very nice event queue coupled with nested statemachines.
The feature I was actually thinking about in the QP framework is rather than using worker 'threads', the use of 'active objects' that can receive events and always event handling always 'runs to completion' (RTC). It can be very useful and the framework overhead in terms of code is very small and ofcourse, the RTC semantics mean the advantage of not needing synchronization and other multi-threading constructs between the active objects.
It is fairly easy ofcourse to create a simple event queuing mechanism, but I think these guys implementation is worth studying (he has a book that talks about various tradeoffs and design considerations), even if you choose not to use his code . He has thought deeply about this whole area...