self-hosting matrix is possible, and after I got it set up, it works fine. That said, push notifications were acting up a lot at first (might have been fixed by an update since that hasn't been an issue in a while), and it is rather annoying to get your desktop and mobile clients set up to not be annoying about not being verified (iOS apps seem more fiddly with verifying than Android apps in my experience)
Despite my annoyances at first, the Element client really is the best and most mature one out there, and I do recommend it. Don't bother with any of the other ones; despite what the fluffychat settings want you to think, Element is the only client that can do any kind of audio/video calling, and most of the other clients only have web apps, so there's no hope for getting push notifications on mobile.
Ultimately it has worked for me, but my demands are three humans in a voice call once a week, no screenshare (use Parsec for that), and occasional text messages.