So, after looking at Ocean Project in more detail, it seems they use a workaround based on the Custom Depth buffer, to get rid of the artifacts. So they are basically rendering the surface of the ocean twice, with one of the surfaces writing to Custom Depth and not to the main pass.
Then the opacity of the main surface is set to 0 whenever its depth relative to the cam exceeds the depth in the Custom Depth buffer, essentially hiding the far triangles.
Since this means the whole displacement computation with Gerstner is run twice, this is a very costly workaround. I believe there should be a better fix in the renderer.