XMPP can do all those things, has really good clients and you can - as opposed to # - !selfhost with maintained network reach. Are you on XMPP too, @yvolk?
(then feel free to add me on mmn@hethane.se .D)