I am not sure how configurable we want all of this to be? @codinghorror / @eviltrout / @Roman ? The concept of “not fully trusted” moderator does worry me.
At a minimum we would probably agree to a PR adding proper hooks, or organising core a tiny bit so it is cleaner to override in a plugin.