Help with webcore piston that trigger time spans midnight

I want my wake up lights piston to triggering Mon-Fri 5 hours after a switch closes. The switch may close the night before.

I have a bedtime routine that turns on a virtual bedtime switch when it runs and turns off the switch when it finishes.
I would like to trigger the wake up routine to run 5 hours after the bedtime switch closes. That way the wake up routine adjusts to when I go to bed.

This is my current routine. Open to any and all suggestions and resources for learning!

Updated to define sensors:
Contact sensor 20 is an override to pause the piston
Contact Sensor 1 is the bedtime switch
Switch 21 turns on when I get up to (hopefully) stop the piston execution if I get up early.