OTR kind of sucks, partly because of what you mentioned.
I'm trying to introduce the Axolotl ratchet (behind TextSecure's security) into XMPP:
The Axolotl ratchet provides true asynchronicity so you don't need to keep the link open forever. You don't even need the other party to be up; the message can be stored on either server and forwarded when the recipient connects, and the recipient will only decrypt the message at this moment. This is what we need.
Re:Wire – Modern Communications Network
by binarnosp on Wednesday December 03, 2014 @03:08PM
(#8696050)
You can develop an xmpp client for IOS that does not ping you every 10 minutes (or ever). You have to register the socket used for XMPP for VOIP purposes and IOS will happily comply with that. Been there, done that
Go download an OTR client for iOS, like cryptocat and notice how it pings you after 10 minutes that you have to re-open the app to keep on receiving messages! It's because iOS does not allow you to keep an app running in the background indefinately for battery reasons. This is required for the XMPP / OTR model to work.
You need a protocol of some sort that would work properly with mobile, and I think textsecure is it.