Io e @angus ne abbiamo discusso e abbiamo trovato una soluzione molto semplice a questo problema. Sembra funzionare bene.
Spostare il codice di on() fuori da after_initialize risolve il problema. Credo che tutti i plugin dovrebbero farlo così. Penso che il problema fosse dalla nostra parte.
Il motivo per cui questo funziona è che il controllo entra in plugin.rb prima che vengano eseguiti gli initializers di Rails e, di conseguenza, i callback on() vengono registrati prima che i webhook vengano accodati.