Fundamentally you've got the wrong model. You are trying to fit this into a single conceptual phase where in fact we ought to have multiple stages.
The Java model for example is multi-stage: The compiler reads the source code of program P1 (which is conceptually immutable!) and by running the annotation processing it produces program P2 which in turn could produce P3 and so forth.
I do not think that trying to find convergence or whatever is wise. Instead, we need to run additional trait solving phases as part of this compile time vs runtime divide.