I think I am over thinking it. but it's driving me crazy.
List the steps that you would follow, if the Arduino was broken, and you needed to do the job for a while.
If mode is 1, some activities need to be performed. Perform the first one, and record when that happened. Periodically, if mode is still 1, determine if it is time to perform the next activity. If it is, perform that activity and record when that activity was performed.
Obviously, you need to keep track of what activity was last performed, or which is next to be performed. You need to keep track of when the last activity happened, and how long it is to be until the next activity. The time to the next activity clearly depends on which activity was last performed.