How about tuning the matchmaker to take into account the most played heroes on a person’s account to sort of ‘soft role queue’ players into games where the composition would end up as a 2-2-2 naturally? If someone has a certain % of their playtime on a certain role, the matchmaker would classify them as that role and not match more than two players with the same role on a team.
Example: Three players play tank mostly, three play support mostly, and six play damage mostly. Matchmaker sorts them so Team A has two of the tank players, two of the support players, and two of the damage players. Team B has the remaining tank and support players, and two of the damage players. The last two damage players are matched into a different lobby and another tank and support are matched into this lobby.
This would most likely result in slightly longer queue times, but probably not by more than a minute. I think any truly competitive player would prefer a balanced game with a 5 minute queue than an imbalanced game with a 1 minute queue. These examples are a little on the extreme end, but you get the idea.
This would eliminate the complaints about role queue, autolock 4dps comps, and imbalanced games where you have four support mains and your team is unable to match the enemy team that got a lucky dice roll and ended up with a variety of players.