It isn't possible to achieve this. Looping indeed always goes to the start position, and switching between songs just can't be made seamless. Even if you'd play the intro as music, and the rest as ambient, keeping the first part blank, you would still have the blank in your loop.
Switching rooms is even less reliable, because the loadtime of a room varies between pc's. Getting it right on yours will not guarantee that it'll be good on another pc even. In fact, running the game from external media will already have a different loading times for rooms.