How exactly does the matchmaking work?

Either I have the absolute worst luck in the world with matchmaking, or it doesn’t work as it should.
I’m not complaining I’m losing exactly, or I am actually, but I’ll get to the specific reason why in a sec, I’m just more boggled by how it determines who gets matched with who in team games specifically.
Several games in a row I’m matched on teams with people deliberately AFKing, and I know they are because if I accidentally forgot to exit the search for games and don’t get back before the game starts, I eventually come back to the menu, not searching for another game because it detected my inactivity.
So I report these people, especially when I’m playing Competitive. I generally figure reporting is similar to blocking or something, a method to tell the game to not match you with this person/these people again.
Yet for quite a few games afterwards, I’m thrown in the same games with these people, on the same team.

Competitive low population aside, it does very similar things in social. Players that absolutely dominate a game, by themselves or in a premade team. The game insists I get matched against them for as long as I continuous search (and or exit and re-search without waiting a minute or so). Along with some of the worse performing people on my team in the games prior.
I’m not a baby and can handle losses against people better than me, but that really doesn’t seem like it’s how it should work. What grates on me the most is when I’m repeatedly thrown in with people that were being obvious nuisances in the game, especially after I’d reported them, along with a few other people (supposedly).
Whether reporting does what it should or not I can’t say, but what it feels like is rather than just being random as most matchmaking games would be, it instead just pairs you up with whoever you meet in the first game, and then so long as you keep playing, you’re sticking with them forever, only having replacements when people drop out and don’t come back for days.

Yeah I know that’s an exaggeration, but really, I’m typing this after I’ve had my fill for the day, I took note of how many games in a row I had the same people consistently on my team or opposing me. And to my frustrations for trying to ‘win three social games’, I got 9 (NINE) games in a row of a small premade team of 3 on the opposing team that dominated everything, and 1 AFKer + 1 guy annoying others because he didn’t get ‘this weapon’ first on my team.
HOW? And Why? If its random, how can my odds of not mixing teams up of these same few people that stuck around in them be so that poor? You’d think after reporting someone for the third time this system would think “Hm, maybe he should be on the other team this time.”
I feel like I’m shackled to these people that strive to do nothing but annoy people. I can weirdly deal with repeatedly being against a premade team, I’d be annoyed at consistent losses against them, sure, but at least for one game fill the rest of their teams slots with these pricks for once! Why is this system seem so against ME specifically?

Is this normal for how this system works? Cause it’s kind of incredible at how out to get me it feels.