I have a global variable called "soundPlaying", which is initially set to 0.
Whenever I enter a menu layout, I do the following:
If soundPlaying == 0 -> set soundPlaying to 1, play "menuLoop"
This way, whenever I leave the initial layout, it's always set to 1, and hence, the sound won't overlap itself.
When I go to a Level Layout, as it has a different music loop, I simply stop the menuLoop music.
When the user comes back from the level, I set "soundPlaying" to 0 again, so it starts playing again in the menus.