I found out recently that training missions have an odd quirk. When the "Skip Training" button is pressed, FSO will mark all the mission goals as complete, and all the mission events as
incomplete. Therefore if your campaign file next-mission-sexp uses events to determine progression then they will always be false when evaluated when "Skip Training" is pressed, which will result in "Skip Mission" returning to the
same mission instead of the next mission. Kinda confusing & frustrating to players
To get around this, use goals instead of events (e.g. is-previous-goal-false instead of is-previous-event-false) in the next-mission-sexp.
Hope this helps someone else!