Why not using pointiness to get the edge detection?

Because you are using the vertex colour in the shader editor you could also use the pointiness node with a RGB curve node (or similar nodes) to get the cavities and edges. And while applying it you should see whether your mesh is good enough to get good seamless results. If you are using vertex colours you always have a two-step workflow. Working on the mesh, apllying dirty vertex colours and see the result and in case of bad results doing it again ....

But perhaps I am completely wrong and have overseen anything...