I do like a number of ideas, and I'd like to add to them, if I may.
If you have ever played World of Warcraft, you would be familiar with the Dungeon Finder. This groups 5 random players into a team for some PvE action. When you enter the queue, you select one of three roles: Tank, Healer or DPS. A team of 5 consists of 3 DPS, 1 tank and 1 healer. A team is not complete until all of those roles are filled, and once they are, they begin the Dungeon.
I think a similar system could be used that reflects many of your ideas. When queuing up for a match, you can choose the role you'd wish to play - Top, Jungle, AP mid, AD carry or Support. This directly relates to ideas 3 and 4:
Once the team is made, they can enter a "pregame" lobby as you describe, which operates similar to the Custom Game lobby. That is, you can chat with your teammates prior to clicking "Start Game". Of course, for matchmaking, there is no "lobby leader" so it would have to be modified to have the "Vote to kick" function, and also a "Vote to Start" or a "Ready" checkbox so that once all players are "Ready" they go into the queue and begin looking for another team to play against. This directly relates to your ideas 1 and 2.
Finally, idea 5 should already be implemented. If a player is on your ignore list, I don't see any reason why matchmaking would put this player on your team. No additional ideas from me, just make sure that you never see an Ignored player ever again 
I think idea 6 is a decent idea, but may be open to exploitation. To add to the idea, what if there is a "Vote to Draw" function in which both teams can vote to end the game within the first 5 minutes if there is a player that cannot connect to the game, or anything like you described.
That's the best I can do to enhance your already great ideas.
Like I said, the final idea may be open to exploitation and may cause more issues than it solves, but the other 5 ideas are great.