After 250 tiring meters, I finally figured out my right side troubles. I was pulling my arm over too fast, which shortened my breath and usually dumped water in my mouth. The last 250m, I focused on delaying each stroke a little bit until I got my breath. That made a huge difference. It also helped me keep my lead arm straight out while I was breathing, which kept my hole in the water smaller.
This was my longest swim so far, and I felt really good about the last 250m.