What is your underlying motivation? Debuggability? Better optimizations? Something else?
I wonder, if the feature you are looking for could be turned into a first-class feature, without the need for custom metadata nodes.
E.g., recently I changed the CoroSplit pass to preserve the line numbers associated with a suspend instruction and turn that line number into an artificial DWARF label (see [RFC] Debug info for coroutine suspension locations - take 2). I wonder if your use case could also be turned into a first-class, out-of-the-box use case in a similar way