Looked into this a bit. I don't have access to the operative engine (player) source code -
Lokplart has been maintaining it in a private repository. Therefore, I can't see how this is being handled on the back end.
While you are right that the ride interface screen does not make use of the $toplay variable in overriding the $music_now variable, $toplay and $music_now are only checked in two locations - the race interface screen and the combat interface screen.
There is no "$toplay loop" in a general sense.
Music in every other location is handled differently, e.g.
play $main_sound, music_volume, 'only, loop'
or
play $city_sound, music_volume, 'only, loop'
.
The fact that the ride interface screen doesn't use $toplay is an inconsistency but functionally arrives at the same result.
There is a feature in the engine that allows a special location ($ongload) to be triggered whenever a game is loaded. I've tried various things there to try to get the engine to restart music (close all, play a sound file, go to a different location) ... none worked.