I would personally just not have the music cut out, fade out or pause ever. The way I did it in my game, is to make a separate empty object in the first scene you load, usually the menu. Then put an AudioManager class (or whatever you want to name it) on that object and add DontDestroyOnLoad(this); in the Awake() function. This way the class is never destroyed between scenes and can just keep playing music. Then add an AudioSource component on there and just cycle randomly through an array of AudioClip elements, which you fill with all your music tracks. Here's the code for that if you're interested: https://pastebin.com/HM8QEfV4
But, of course, that's my way of doing things and the way I prefer. Ultimately it's up to you what effect you want, but maybe this gives you some ideas ;). I only learned of using DontDestroyOnLoad recently and it's been a gamechanger for me.