With running counters is the answer.
seq 1
seq 2 ----->Forced interrupt - advance to 3 --> return to 2
seq 3
seq 4 ----->Forced interrupt - advance to 5 --> return to 4
seq 5
At any time button pressed:
* Set FORCED flag
* Set seq time shorter
* Advance seq #
In all seq routines:
* Import seq time
* Check for Forced flag, if it is set then reset seq # just before seq is complete and clear the Forced flag.
OR
* Check for Forced flag in a global seq # monitor/advancer.
What is your definition of "normal process carry over"? Does this mean after returning from a forced sequence the seq # automatically resets to #1 or more so to return back to the prior seq # before the interruption? All you need to do is keep track of the running seq # with a variable. So whenever an interruption occurs, do it and aftwards, return back to the running seq #.