OTR was great, until Signal/Axolotl/OMEMO came about that allowed for multiple endpoints. OTR you had to establish sessions and if messages were received out of order or an end closed the session, you'd have to handshake again. I used it with GTalk before Google staked it dead, then on AIM for a bit until Verizon (I think?) finally staked that dead. It worked pretty well unless I had multiple computers up with OTR support in the clients. In this situation I'd have clients fighting each other to handshake and invalidating their old sessions.
Don't get me wrong, OTR is great because you can run it over most anything that doesn't mangle the text being sent whether that's IRC or whatever your text protocol of the day is.
Textsecure, which later became Signal was originally based on a stripped-down version of this... but SMS sucks for sending longer messages and verifying delivery order so that was abandoned.