Hello --
The situation you describe is technically working as expected. There is a subtle order-of-operations that makes your playhead move to cue 3 instead of cue 2 in that specific case.
Shows are designed to move forward ("fire and forget"), so starting a cue immediately moves the playhead to the next available cue, which is to say to the next one that is not yet running. This way, each GO is as responsive as possible, no matter which actions are scheduled to happen after the GO.
The other actions like "Stop Others" happen after the GO starts the cue. (Quite often, stop others has a fade out. Even with a 0-second fade, the stop is not technically "immediate".) Because of this, if you GO while cue 2 is playing, the playhead skips over cue 2 and moves to 3 instead.
Would it be possible to design your show in a different way that would not require moving back up the cue list? One idea would be to add duplicate cues with the tracks you might want to repeat. This way you can repeat playback of the tracks while the show still moves forward. If you want the option to jump over those repeated tracks, you can add a "Custom" go action to one or more of those cues. Set the custom action to "Start" and target the cue that follows the repeated sequence of cues.
Go actions that you don't trigger during the course of a cue get skipped, so in that way they give you optional ways to branch your show flow.
Brent