This post will most likely be fairly unpopular since most people won't read the entire thing through, but for those of you who read the entire thing, let me know what you think.
How you stop players from being toxic is very simple, and doesn't require many steps at all:
1. You can't
Whether or not this is something we want to accept, it is the reality we live in. There is toxicity in every game, and there has been and will continue to be toxicity in every videogame. League is no exception, and it is no worse here than it is in other communities. There will be toxic players, and there will be players who can't reform at all. Unless we go around IP banning toxicity, these things won't change.
Where we actually can see change is by reforming the sadly shitty system that Riot has developed for punishing toxic players, and hopefully move some of the power back into the community's hands. Similar to government enforcement, when people expect the government or any higher authority to take action, they are much less likely to take action themselves. Even if there is a simple way that they can fix the problem themselves, it is seen as out of their hands and quite frankly not their problem, when a higher authority so frequently comes in to fix it. This is what has happened with Riot games. Toxicity has become a problem solely between the toxic player and riot, with little to no community involvement in the process. Even though there is a simple fix to a toxic player, many people don't just mute toxic players because of this.
With this in mind, I can get into the rest of the post.
While you can't necessarily stop people from being toxic, you can change how toxicity is viewed and how the community reacts to it. I think this is the way Riot should handle the problem:
Being a dick isn't the same thing as being toxic
When I say this I mean that there is a big difference between telling somebody to kill themselves or using hate speech, and getting upset at your team and calling them bad. They aren't comparable, but are punished by riot in very similar ways, with the only real difference being speed of punishment. Players who get upset at teammates for playing poorly, or the large majority of them, actually care about the game. Sure they are venting their frustrations in poor and detrimental ways, but overall they are still players trying their best to win. In any team game, tempers can flare. People can get upset that others aren't performing like they should, and with anonymity that comes with an online MOBA like league, it becomes much easier to get frustrated at random people for what they see as ruining their games.
I do not think that this type of toxicity should be punished in the same way as hate speech or threats of violence.
So how do you punish them??
Stop perma banning dickheads, and start permabanning toxicity. The permaban should be reserved for behavior that Riot as a company does not want to be a part of their community. This should include hate speech, threats of violence, and telling people to kill themselves, and very little overflow into the category I labeled dickheads.
As for the dickheads who's toxicity is linked to frustrations about teammate performance, I don't think they should be punished further than a chat ban. The length of this chat ban could obviously increase, or possibly become permanent, but I don't think you should be perma banning those who care deeply about the game, but get frustrated by teammates. By Riot stepping out of the business of perma banning these individuals, people won't be left expecting Riot to take action against somebody, and will be forced to take action themselves. With toxicity in general, I think the mute button is very underused, and I think people expecting Riot to take action is the cause for this. If a player is being distracting, or you just don't want to hear their shit talk to your entire team, it should be up to you to mute them and police what is ok and not ok for you. Some players enjoy this banter since it keeps them on edge and they perform better, and some players have very little tolerance for being insulted. It should be up to the community members what each one of them wants to be exposed to, and they should mute players that cross their own predetermined lines. If Riot only banned severe toxicity that they wanted out of their game entirely such as hate speech and threats, people would be able to self police themselves and their own community, and wouldn't expect Riot to jump in and save them every time. By Riot chat banning dickheads and leaving the rest up to the community, they still limit what can be said, while ensuring that somebody can't pop off in chat and seriously offend somebody before they have time to mute the unwanted behavior themselves. Along with this, with an increase in muted players comes less engagement of frustrated players, which will most likely limit frustration as a whole. Most of the time a single upset message turns into a 15 minute debate after somebody comes in a with a retort. Limiting engagement of frustrated people could also remove some of the toxicity from the game.
Bans in general should be left to things that can inflict serious detriment to the community through only one message. Nobody is going to become seriously offended and want to quit the game because somebody called them bad a single time one game, but this can very realistically occur from hate speech or telling people to commit self harm.
Overall I think the problem of toxicity can't be solved fully. There are toxic players, and they are in every video game and every part of life. But Riot calling something bannable leads to very little action taken by the community against it. This leads to unbanned players talking shit on their entire team while being unmuted the entire game, and ruining said game for their team because they are distracting everybody in the game. If Riot shifted to only chat banning these people (in most cases) and leaving the rest up to the community, people would just mute unwanted behavior instead of being berated for an entire game. I think if Riot stepped out of the business of banning frustrated players, and just focused on removing hate speech and threats, people would be much more in control of their own games.