To retopo your curve, you can use Boundary Aligned Remesher.
Otherwise, you can dissolve the interior edges, selected the resulting faces and do an inset to get a perimeter loop.
Other solution, use a remesher. Best result is to be obtained with QuadRemesher, but it’s 60$, but really does a nice job.
Give a try to OptiLoop too i guess.
Edit: As for the issue when carving curved surface, it often happens when the cutting gets too close to an edge. Check by disabling the bevel modifier. If you hole looks good, that’s it.