Note the reversal of the order of operations in `endHandlingTrack()`
(done for extra safety, to ensure no more value changed events can be
fired at the point of cancelling looping).
Can happen because `TimeshiftPlayer` will schedule a screen exit on
token retrieval failure, and `RealtimePlayer`'s BDL won't even attempt
to create a leaderboard in that case.
`RNG.Next(int, int)` is max-exclusive, so the random state choice would
actually never pick `MultiplayerUserState.Results` on its own. The only
reason why that state ever did show up was by a freak accident of sorts
(the logic in `TestRealtimeMultiplayerClient` would automatically
convert every `FinishedPlay` state to `Results`, up until seeing the
first player that was in the `Playing` state).