I propose some architecture improvements (do not feel offended, I just would like to ensure that we are enabled to integrate more xmpp specs):

I got that we need to pass the stanza to mechanisms. but do we really need to forward the server object? Maybe we can work with events between server and mechanisms. I would like to keep the things separated as much as possible. From my perspective the mechanism should not directly emit server events.