TransitionLoops losing sync?

I have 3 blades. Each is a single 3mm LED.
Each blade has a style using TransitionLoop.
The timing is the same. 500ms total per loop, just different parts have different durations so as to create a pattern.

Since the clock starts at boot, wouldn’t they all stay in sync?
I’m getting drift, and the desired pattern produced is not working.

  // 3mm Yellow
StylePtr<Layers<
Black,  TransitionLoopL<TrConcat<TrInstant,White,TrDelay<400>,Black,TrDelay<100>>>>>()

  // 3mm YellowGreen
StylePtr<Layers<
Black,  TransitionLoopL<TrConcat<TrDelay<100>,White,TrDelay<300>,Black,TrDelay<100>>>>>()

  // 3mm Green
StylePtr<Layers<
Black, TransitionLoopL<TrConcat<TrDelay<200>,White,TrDelay<200>,Black,TrDelay<100>>>>>()

Unfortunately the restart of each transition is tested individually, so they will not stay in sync.

It could be possible to make them synchronized, but it would require a little hackery.
When a transition is done, we would need to know how long ago it was done, then subtract that time from the next iteration somehow…