Can't remove unnecessary Geometry in Object
I find this a rather unsatisfying answer, as it does not involve "proper" modeling, but a functional way to get an acceptable mesh for 3d printing (I think/hope) would be to bake a height map of your object, then use that height map to displace a subdivided plane.  This bypasses the problem of self-intersecting geometry because the height map is an undifferentiated mass of height data.



The crispness of your edges and the smoothness of your surfaces will depend heavily on how much you subdivide your plane.  It will also depend on the resolution and bit depth of your height map image, I'd suggest using a 16-bit file format.  You'd have to relate all that to your 3D printing methodology to determine whether you'll get an acceptable result.

Please let me know if you'd like a description of how to bake a height map or what I did in this particular case, my previous answer here has some info.

But as a general matter, I'd love to learn a more . . . elegant solution to the problem of self-intersecting meshes.  Something that doesn't involve a lot of manual retopologizing.