See rP25210.
On the && for the UnregisterHook sink function: went through https://stackoverflow.com/questions/61597860/taking-sink-parameters-by-rvalue-reference-instead-of-by-value-to-enforce-perfor and http://scottmeyers.blogspot.com/2014/07/should-move-only-types-ever-be-passed.html and I can see the point.
Since the type isn't trivial, I've kept && for the regular object, but not the unique_ptr variant.