As for the persistent connections, it's hard to categorize Connection Manager implementations because there can be different types of HTTP server on the other end - Connection Manager, proxy or port forwarding HTTP server. This calls for robust implementation of HTTP connections and for separating the HTTP from XMPP stream.
Also, I have fixing a bug Asterix discovered - authentication to ejabberd hangs when it doesn't follow immediately after init response. More info here. I believe it's an ejabberd issue because the traffic scenario is consistent with the XEP and it works with Openfire. For now I supressed sending empty bodies until some authentication module is plugged, which will result in inactivity timeout when the delay is too long. I will check with Tigase and Punjab as soon as I manage to install them.