Hi,
this is actually the way Fsm are intended to work. Indeed you need to organize your Fsm properly. But typically, for EVERY single process that must run asynchronously, you need a specific FSM for it. typically, you can't have a mouse listener Fsm coupled with an animation Fsm, they would get in the way of each other, one fsm for each will work.
sub fsm and template: if you are getting lost with several Fsm on a single GameObject, then SubFsm and template might be even worse in your case, cause the whole process becomes even more abstract. BUT, I use this all the time and it's utterly powerful, so I really suggest you try them out, because once you grasp how to work with them, the sky is the limit really, especially with prefab/template combination, incredible potential.
Bye,
Jean