Not sure if this will help, but you can fix Option B by using the custom depth buffer like you did for Option C (though I’ll admit I didn’t quite understand what you were attempting there).
Here’s a screenshot of my simple test:
It’s just two cubes in the same actor. As you can see, they do not see through all elements anymore.
Here is the material. You can use Lighting Model = “Surface ForwardShading” in the material properties for the best looking results though it’s the slowest. You’ll need to set your mesh to draw into the depth buffer as well as enable depth writes on your material.
You might want to switch to an opaque surface when displayed normally. Setting the opacity to 100% won’t display the same as an opaque material.