Repeat after alarm is stopped.

If not, we stop the repeat with the original!
Use global system alarm state
time_since_action() rather than more magical comparison