Is Matrix a good solution for internal company communication? Or is it better to go the way of "industry standard" like slack?
Matrix is good as a LiveKit client who support active call, like a phone call, and good enough for passively share screen (no remote input supported for now). Not good for chat.
A good FLOSS internal chat is Zulip, a passable one is Mattermost (who is better for many things, but being "Open Source Enterprise" is largely a no-go IMO.
Zulip+DocMost are Slack+Confluence. Zulip support calls as well, but via Jisti and they aren't much nice IMO.
Depends on the company.
If small enough, group chats will work just fine with less struggle and overhead.
If larger, possibly.
NextCloud may do much of what you need.