Good point. It could also be that the delay until the self-presence is send is simply to greater then the default packet reply timeout. @Dirk: As CSH suggested, and try to increase the default packet reply timeout.
Especially the XEP-45 self-presence reply can take a while. It may be a good idea to make the packet reply timeout in MUC.join() configurable or add some extra seconds to the default reply timeout