So I have noticed that the opacity sorting seems to only happen use the mesh origin for the depth. Ideally it would be per fragment sorting? Is there a way to enable that, or is this just a limitation?
Yes, sorting is based on the distance from (center of) mesh to the camera. The only way to have a correct rendering in your PG is to enable Order Independent Transparency: