If anyone was following along at all, I finished my example of elaborating mutually recursive let bindings to fixpoints: https://github.com/brendanzab/language-garden/tree/main/elab-stlc-letrec-unification
In the NbE-based interpreter, I went back to using a flag that disables recursive unfoldings during quotation. Based on discussions with others I think that is fine given the compromises that general recursion imposes. It’s hard to think of a “cleaner” approach.