Well, first of all, talking from experience, FSMs this big are a recipe for disaster, it should be broken down in smaller FSM's in charge of particular function (patrol, attack, retreat, whatever) commented via global events.
They can be reused, are easier to debug since the problem can be pinpointed a bit easier.
All off this stuff you have is happening in ONE state?