So, I personally try to use a single or a few trigger events in order to push the battle turn to its next state. In my latest prototype, I basically use "on tween finished" or "on MoveTo hit target position" to check who arrived where, and tell a given character what he should do next. Also, I work with the "on animation finished" trigger to change the animation state of each character.
This way, there is only a few triggers which call the battleManager function, directly or through another function (like characterMove("attack", targetUID, combo) calls the battleManager if the attack combo ends for whatever reason). Each aspect of the system I could separate from the others is split into its own function and/or even group.
Can't help much more without seeing your code. But, if you're interested, I'll make an "advanced" tutorial based on the work for my latest project. Some kind of postmortem. I'm wrapping up the prototype itself today or tomorrow (got a bit delayed).
Cheers,
Nathan