Sorry to keep updating my own thread but I found some more interesting information.
For Android, monogame just wraps Song around an Android Media Player. I created one in my Activity and it worked just fine. It spun up instantly and didn't skip ahead. Just like the windows media player, there's a loop delay that I can overcome by tracking the duration myself and setting the play position back to zero.
If I stitched two songs together (I have an intro music file and a looping music file), they can be sewn together seamlessly if each song has its own Android MediaPlayer. There is a very tiny gap if you reuse the same one.
So if Monogame just uses an Android Media Player, why is it performing so poorly? The answer seems to be in the format it wants to use. If I loaded an mp3 or ogg, it was great. But Monogame wants to export Android songs in an AAC format (mp4 according to comments in the code). If I used THAT format, my Android Media Player starts late and not at the beginning, just like the Monogame song.
Armed with this information, I think I can write my own "Song" engine that works around all the issues. These aren't bugs in directly in monogame, just various issues with the stuff that monogame relies on for audio playback.