re: toxicity in competitive
my competitive experience has been almost wholly positive and it's not just a luck thing. you have to make the environment more positive and people will be less likely to get all piss-baby in chat. if you're tank/support, you have some leeway to ask for things in team select, like "i think we could use some hitscan", or "we could use some area control like junkrat or pharah". people will get salty if you ask them to play tanks or supports, but ask them to play something that makes people explode and they'll be more than happy to swap over. if you have a good comp out of the gate, say so.
if you have someone on your team who gets a good ult off, be like "gj [name]". if you capture a point, "great work, everyone". try to use the thanks emote every time your healer pays attention to you. if your team gets wiped, say "good try, we'll get them next time". if you lose a point, "good hold everyone, we burned a good amount of time". be talkative and try to spin everything in the most positive way you can
a good rule of thumb is also to never single out anyone for anything "bad". example: mccree and tracer keep getting over aggressive and are pushing into the enemy team way too hard without any help and are dying before the team gets there. the knee-jerk reaction would be to say "mccree and tracer, stop moving up so far", but that isn't good. despite being very neutral in its delivery, it singles out the people making the mistake and that will make them defensive and less likely to listen. instead, if you say, "i think we're getting a little too split up, let's give it a try grouping up behind reinhardt all together", they'll be a lot more likely to join you and attack properly. it will not work every time, but it will work more often than directly calling someone out, and it will reduce instances of toxicity in your games
another thing is that singling people out is good when they do something good. if you wipe a team you can be like "great work everyone, zarya that was a sick ult" or whatever. if someone does something good that just wasn't enough you can be like "thanks [whoever], you bought us some time at least". when people feel good about themselves, they tend to play better, and they also tend to not get as salty if things go in the shitter later on.
this is a little pretentious but the old quote of "all evil needs to succeed is for good men to do nothing" or whatever holds very true for the attitude of your environments in ranked play in any game. it isn't just up to toxic players to calm down and stop being shitheads, but it's also up to the rest of players to create positive environments so that shit doesn't happen in the first place