Niagara particles don't display correctly with a material that hides objects far away

the 3rd approach is another roundabout way.
modify your materials to read the depth buffer. or use a node that gets the pixel world position *1
then lerp the mesh color (and maybe other params like specular) to black. so it will “look” as if they’re fading, but they’re just tinting (which is what the post process does).
the problem will be the light, which might or not reflect. (you can also use a very negative color to see if it absorvs light).
you might have to try this one.

you will need some sort of master material, since the parameters on each material should map almost exactly.

another option would be to use an overlay material and tint there. but the overlay material will incur in another drawcall (afaik) and you don’t want that on vr. (but if you’re desperate…)
the overlay material will allow you to avoid modifying the base material.

*1 you can use the same logic you used PixelPos-CamPos+offset/distance>saturate