Switch TitleKey to use TitleMoveCompleting hook
This keeps the titlekey update inside the main transaction so it
doesn't get lost in post-edit updates. Should improve consistency
in case of unexpected failures, and may also help in places where
the deferred updates are run in odd ways.