Assigning the crazypants handshake to myself, since I'll need to touch this part of the codebase (or at least become super familiar with it) for #24988 (moved).
Also, depending on timing of when things are finished, it might be possible to use the work from #24987 (moved) (since it composes two handshakes by taking function pointers to the implementations) to chain ntor+ntor to accomplish this task… that would involve no (or very little) new code.