If you have conflicts, try implementing a scheduling system for your People objects so that only one gets a path each tick. This method along with your flag/state system should eliminate all conflicts.
You can use a counter, and IID. For your action event -
System pick Nth instance - PersonObject, InstanceCounter
After your actions are run for that instance, Add 1 to instance counter. If instance counter = PersonObect.count, set InstanceCouter to 0. One action way to do this is Set InstanceCounter to InstanceCounter=PersonObject.Count?0:InstanceCounter+1