To make the music play uninterrupted, you need to have an event that uses the Change System BGM command (found on the first command tab) to change both the Battle music and the BattleEnd music to the same song as whatever is playing on the map. The best place to implement this is in the same event that moves the player to a given map, so that the music will be continuous for every encounter that occurs on that map. Generally speaking, you want to add it to the beginning of the event. If you want it to be continuous only for a specific encounter (such as a boss fight), add the code to the event that triggers the encounter before it initiates the battle. Your two lines of code should look like this...
Change System BGM: Batl->MusicName Set
Change System BGM: BatlEnd->MusicName Set
...with MusicName being whatever the song is called. Hopefully that helps make your transitions smoother. I have not, however, been able to figure out how to get it to memorize the position of a song and then pick back up from there at a later time. If you use the Change Variable command, the "Other" operand at the bottom has an option in the drop-down list called "MIDI Play Pos. (Tick)". This seems to be what would save the current position of the MIDI, but I cannot figure out any way to make it start playing from that position once you've saved it in a variable. Hopefully somebody else can provide some insight.