When looking for a slack alternative, please primarily look at matrix. It's open source (not open core or source available) and based on open federation. And it keeps improving at a nice rate.
Matrix/Element's UX is abysmal, it's not a viable alternative to anything. I continue to get 4 popups (two of them modal) every time I login, and I have to login every time I open it because it doesn't remember logins. And it happens not on just one system, but on two different browsers on two different PCs.
The only even close to being something I could let my non-techy friends or relatives use is FluffyPokemon or RainbowUnicorn or something like that.
And even it's still missing features.
Cinny (https://cinny.in) is the first Matrix client that actually looks promising. They just plain stole Slack's UX and it's working. There's no need to be unique for the sake of being unique when it comes to UX.
Matrix the technology is pretty good, partly excellent.
The clients though... whooo boy. Element is so bad that it hurts to use it. The worst part is that it doesn't have a singular major flaw, it has a hundred tiny issues that are just a bit wonky.
Matrix is not community-driven, it's linked to and driven by some shady company rooted in the israeli intelligence sector. If you want real messaging freedom you should consider xmpp instead.
Will OpenSSL reject properly implemented features contributed by third parties, because you sell paid features on top of OpenSSL and said contributions happen to make your product redundant?
That's the difference. Mattermost won't ever accept contributions, that reimplement features from their paid product. If you want to use such features, you would have to fork, and forced to keep the fork public, since it is AGPL.