Anyway, there is a discovery mechanism, and clients do adapt the version used by peers, so there is no incompatibility. Kaidan choose for a while to have only OMEMO:2, because resources are limited and they were going for the latest version first, but resource are limited for everybody, and it took times for others to implement OMEMO:2 too.
NLnet/NGI did (and still does) gave financial support on several XMPP projects (including mine, huge thanks to them), and, curiously, when there is money to help, implementations happen. That's problem nb 1 with XMPP: lack of financial resource.
() GUI (notably web UI) is being reworked, not stable yet, but the CLI is pretty solid.
I worked on adding OMEMO2 support to Converse.js via libomemo.js and I tested it against Kaidan.