How sad. I see that you thought you safe when you started your return at 71%. I also see that you have quite a few flights under your belt. Yesterday I was in a panic when mine went into RTH, and I learned some things through comments.
First, you can cancel RTH. There are 2 ways that come to mind: the phone's touch screen left edge shows a red X for cancel after it has started RTH, and the Flight Mode button (Sport button) on the right side of the controller can be toggled once, or twice if you need to return to the prior mode.
I fly over trees, not open sea so I don't know if this applies in your environment, but I have learned that the higher I go, the stronger the wind. For me wind is much calmer below 60 feet even in areas with no trees. So if RTH is taking you up, you definitely want to cancel it and keep the drone low -- lower the better if you are in a headwind. This may be explain why your rate of speed towards the shore was much better at the end when the drone was closer to the surface. In fact after reviewing your video, I noted that when your elevation was around -10 ft, you were cruising at 15 mph or better. For all of the rest of your flight, it seemed that you rarely if ever went below 50 ft, which may explain the strong headwinds. Also note that cancelling RTH will allow you full control instead of making you "fight it" as you mentioned.
One last thought about RTH. I am not sure if RTH will drop out of Sport mode, into P mode, but I suspect it does. This could be disastrous in your case (maybe one of your biggest factors). Also if you check the GO 4 App setting "Visual Navigation Settings / Advanced Settings / RTH Obstacle Check", this setting implies that with RTH it will be enabling sensors which in my understanding requires P mode. This is one more reason that RTH should have been canceled in your instance.
My lesson learned yesterday is that if RTH has been initiated, yet I can control the drone, that I will be better at protecting and flying my Mavic than RTH will ever be. From now on, I will allow RTH to be initiated (setting: enable RTH), but if it is I will always cancel it as soon as I can.