That works. Personally, I think training messages are ugly and that learning is good. Bonus points if you can create a flashing HUD gauge instead. (Though you'll need a third SEXP to disable it when the player moves back within range.)
As for getting the event to not run continually (again, for learning), you could possibly use another variable to keep track of where you are in the event chain. Something like this, perhaps. Actually, this would still need a third event, so perhaps Battuta's solution is better.
TRACKVARIABLE = is innitialized to 0
when (high trigger count, delay=1)
-and
-->
---distance (alpha-escort)
---2500
--not
---is-event-true-delay
----free to go
--is-event-true-delay
---start escort
--==
---TRACKVARIABLE
---0
-send-random-message (or whatever you want to do)
--"Get back here in 10 seconds or the world ends!"
-set-variable
---TIMEVARIABLE = mission-time
-set-variable
---TRACKVARIABLE = 1
when (high trigger count, delay=1)
-and
-->
---distance (alpha-escort)
---2500
--==
---TRACKVARIABLE
---1
--not
---is-event-true-delay
----free to go
--is-event-true-delay
---start escort
-->=
---mission-time
---TIMEVARIABLE + 10
-end-mission
when (high trigger count, delay=1)
-and
--<
---distance (alpha-escort)
---2500
--not
---is-event-true-delay
----free to go
--is-event-true-delay
---start escort
--==
---TRACKVARIABLE
---1
-set-variable
---TRACKVARIABLE = 0