It's because you're checking the var just once when you trigger the whole event, so it continues running regardless of the value of HyperOrbAction, you can break your events into sub-events and check the var status after every wait before continuing to the other actions, or you can add your own timer var (just a number that you add 1 to every second) and then you'll have more control over it, for example, instead of putting wait for 4 seconds, you do this, set var timer to 4 and another action after that system/wait for trigger("timer"), on your counter event when it reaches 0, you signal the wait trigger ("timer"), then if you want to stop counting, just set the timer to 0 or -1.
Btw, the internal wait action will also continue counting and executing the event if you'll restart the layout, which is also annoying at times, that's why I always do my own timer, or use stuff like on fade ended, on audio ended, on animation ended, etc.