I've done marathons, ultras, and tris with my Garmin 910XT; it was awesome but simply stopped turning on last year. After a lot of research I replaced it with the Garmin Vivoactive and have loved it so far.
It does not have music storage, but it does have bluetooth, so you could use it to control a phone/ipod which has music on it. I don't know of any GPS watches that also have storage but that wasn't something I looked for either. (I don't listen to music when running; if you do please be extra careful as other posts have mentioned)
The cons of the Vivoactive:
-"only" 10 hours of GPS battery life; should be plenty for a marathon but the 910 had 20 hours so this was a downgrade
-can't turn off or configure the sometimes annoying step-tracking feature (so far, that I've found)
Things about it I love:
-can be used as a smartwatch
-great battery life as a smartwatch (screen is color LCD with backlight, instead of always-on LED like Apple watch or others)
-very very small profile and light weight
-has vibrate; some of the cheaper GPS watches skip this but I love it for mile split alerts
-it has swimming/biking/indoor workout features