It's probably the best way to solve the problem, yes.
But I wouldn't have it replace the different stances, rather parameter what each stance means (like in "passive" stance, do the unit flee at first attack or after having lost 10% hp ? does it go to a safe distance from enemy units and then stand idle, or go back to its task once it's out of range of the enemy ? In "aggressive" stance, how far do they go from their allied units ? Do they pursue someone who is faster than them or not ?).
Also, we could use work formations for Citizen-Soldiers : go work as a group, and if one member of the formation is attacked, they all fight back (but if someone not of their work formation is attacked, they keep working).