OnHoge 系のフックは、必ず「対応するイベントを受信した際に処理系によって呼ばれる」という形を徹底しないとだめ
たとえば開始前と開始直後と完了時と中止時では
FooStartRequested
FooStarted
FooCompleted
FooAborted
のようなイベントを発行するようにしたうえで onFooStarted みたいなフックを設定できるようにする。
FooStart というひとつのイベントから複数のフックをタイミング違いで呼ぼうとしてはいけない
(べつに名前は過去形でなくても一貫性があればなんでもいい)