I think some implementation of restricted chat is a really good (partial) solution.
A parallel that comes to mind is stream chats that are open or public, versus those that are subscriber only.
Public chats with any number of people are often absolutely full of trolls, and any kind of insightful or positive conversation is nearly impossible. There are no sanctions (except a ban, which is usually just a limited amount of time, and people can make an unlimited number of accounts anyways).
Subscriber-only chats are generally much more positive places with good conversation.
While I'm not arguing that in-game chat should be subscriber based, I think having some form of restricted chat as a penalty for previous abuses is a comparable situation. In both cases, there is a premium paid to be able to participate in chat, either money, or good behaviour, and a penalty for misusing that opportunity (restricted chat, or a ban on a subscriber account).
Banning entire accounts is definitely necessary here in some cases, but I think for the majority, it's still a somewhat blunt instrument.