You pretty much mentioned the solutions already in my opinion. I go back and forth between dynamesh and subdivisions. Usually I start out with just random dynamesh, then once I'm satisfied with the shapes, duplicate the mesh, Zremesher it, subdivide a few times, and project the dynamesh detail onto it to continue working…