I've gone through these in detail and can't find an issue with the
actual flow of things. For whatever reason, the new structure has a
slightly higher delay, likely due to performing less `Seek` calls
(previously a `Seek` was called after the clock start which may have
been making this more accurate on the first `Player.Update`).
I don't think it really matters that this is slightly off, but we'll see
how this plays out.
This was due to this code happening in UpdateAfterChildren(), after the
GCC has processed one frame. During this time, the clock could have
advanced an arbitrary amount.
The cause of this is the removal of the Task.Run() to set the clock in
Restart() (now called Reset()) which changed the timing, so it only worked before due to pure
luck.