An easy way to make stopping and starting of moving units on waypoints using flags is; Add and an "advanced waypoint action" to the waypoint with type=perform task, action=hold. Then hit the "condition" button and set "user is" to the flag you want them to stop on, and hit the "stop condition" button and set "user is" to the flag you want them to resume on.
Anytime you want to do something with units that are not on the move it's better to use "triggerd actions" like Grimes said.