Hollow / Solidify a Mesh (Without Intersecting Faces)
Yes.  Depends on your definition of straightforward.  Using python and MetaBalls.  MetaBalls are volume based so you are guaranteed a manifold outcome with no self intersections.  However detail preservation will only be to the resolution of your offset and to the detail of the volumetric isosurface calculation with the metaballs.  I use several methods

1)  Add a metaball at every vertex of radius R = offset
2)  Add a metaball at every vertex and a meta elipse at the center of every face (circumscribed by the face)

I pre-process a copy of the mesh to have vertex density such that distance between metaballs is about 1/2 the desired offset.

Works great.  If you want code.  It's going to be a bear to read because it's part of an enormous dental project.

https://github.com/patmo141/d3guard/blob/master/meta_modelling.py

https://www.youtube.com/watch?v=Ih4_wb1tegE