Something else I thought of- there's a few games I've played (Metroid, Hollow Knight) that when transitioning between areas, have a room with no music. The rooms also visually transition between the spaces, and you could use map:on_started() in the transition room to get the music that was playing from a savegame variable, and fade it out, then in the first room of each area use map:on_opening_transition_finished to fade in music that you start silently on map:on_started.