For faster boolean operation, you may have a look at the vespa project. In your case, I would not use it directly but instead create a new version of the boolean operation filter in order to keep the VTK and the CGAL meshes internally so to reduce the number of VTK / CGAL translation (for efficiency purpose).
I assume this will not be interactive anyway, as reconstructing the whole mesh is not really good.
I guess having your own filter that takes the initial mesh and the sphere as input and internally uses a Distance Polydata Filter to move the points of the output mesh to those of the given sphere would be faster. No remeshing, and you can reuse the same output mesh, so it can stay interactive.
You need to deep copy the input mesh first as you do not want to modify the input mesh.