AI movement based on %

Looping would allow you to do both - go through the location sets and pick up a random location from each set.

I want each phase to only happen once for a set amount of time and then move on

This would indicate that you do, indeed, want to repeat teleporting until time runs out. And the whole process will repeat for a new set of locations… I might be misunderstanding the big picture here, though.

Do we need to remember what happened in the previous phase?

Depending on the details, I wouldn’t bother with separate timers for each locations set (you can, but it could get fiddly and it will not be scalable at all in case you want to keep building on top of it), I’d do something like this instead:

None of the above has been tested on the battlefield.