There isn't any clever batching going on - just what Unity normally does for dynamically batched sprites. The sorting is performed based on the origin of the sprite, and the distance of that to the camera.
Presumably moving the white ring closer to the camera "fixes" the sorting?
There are a few ways of "working around" this issue, to trick Unity into sorting it in a different order. Eg. using a shader which outputs a slightly closer z value to what is actually stored in the geometry, modifying the bounding box so that Unity thinks the origin is closer to the camera (i.e. in front of the actual physical geometry), etc.
Thing is though, from what I can see your sprites look like they have a thick outline - if you can get away with alpha test, then you will not have to deal with ANY of that.