Eu e o @angus discutimos isso e encontramos uma solução muito simples para esse problema. Parece que está funcionando bem.
Escrever o código do on() fora do after_initialize resolve o problema. Acho que é assim que todos os plugins deveriam fazer. Acredito que o problema era da nossa parte.
A razão pela qual isso funciona é que o controle entra no plugin.rb antes dos inicializadores do Rails serem executados e, portanto, os callbacks do on() são registrados antes que os webhooks sejam enfileirados.