I wrote a simple rule app (RM 5.1) just to make sure the "Repeat" and "Cancel Rule Timers" commands were working as I expected and it turned out, maybe it wasn't.
I set the rule up to initially "Cancel Timed Actions This Rule" and then to do a repeat 3 times loop, followed by an IF statement.
I expected it to cancel the "Repeat loop" if it was invoked a second time while it was already running--but to then do the "Repeat 3 Time" loop anew. However, from what I see, the second invocation only executed the Repeat Loop once before Exiting with the END-REP.
Note that when I ran the rule one time after this, it behaved properly again--so the issue seems to surface only when a previous execution is interrupted.
I don't see a problem here. You had it run 3 seconds after the first one started, so it hadn't even gotten to the second repeat of the 3 repeats yet. But I think it did stop the original one, and then start a new one at 38:57.
So you need to explain better what you think doesn't work.
BTW, it would be a lot easier for me to figure out without all of the extra logging you've thrown in.