Do you know what it means to when a subVI is "re-entrant"?
The problem is your subVI is non-reentrant. That means all instances of that subVI all share the same data space and only one can execute at a time. So the first instance runs and sets the start time in the shift register. Then the second one runs, since there is only one actual instance of that subVI, it resets the start time.
Go to the subVI's File Menu >> VI Properties >> Execution and set it to "Preallocated Clone Reentrant Execution". But you'll still have a problem since you actually have 6 copies of that subVI, but only 2 ones you want to work with. You'll need to get rid of the extra copies before the loop and inside the case structure. Just use a single copy in the loop, and change the enum constant value you send to the subVI based on your current situation. (start, get, pause, unpause)