Nested condition variables are fun!

That release and acquire surrounding the wait are how you allow one of the timelines to start slipping relative to the other one.

Condition variables