No quit penalty like Reach had for sure (temp ban from MM), such things are infuriating, especially since they may be triggered by temporary connection issues or such.
Make the game good enough people like to play it, and that includes every single map. No crap like symmetric objective games in asymmetric maps... And make the matchmaking good enough people don't feel they have to play with idiots or too good players.
Those two measures alone will reduce quitting.
Persistent quitting should cause the quitter to be forced to play with other quitters, ie low-priority queue. Just don't make it too easy to end up in low-priority queue, and allow people to get out of it.
Also add ability to reconnect in case you lose connection to the game for some reason. No join-in-progress*, no new random players but anyone quitting a game can come back.
Note that i don't mean a system where a quitter can only play the match they started until the match has ended, i'm not sure such system is a good idea (in case the match has hackers, cheaters, exploiters, or the MM screwed up and the match is uneven, or really bad connection, or any other such unpleasant case).
Oh, and make victory important enough people strive for it (compared to Reach and Halo 4 where victory is due to various reasons completely unimportant). Encourage people to play to win, and make the game good enough comeback is a possibility. I figure that helps too.
*Though there could be a warm-up list with join-in-progress. Constant free for all, say half an hour per map. No score tracking, no stats tracking, not even post-game carnage report (this mostly to keep stats-whores from playing it for stat padding). Just something where you can play a bit to warm-up but not worry about poor performance or anything else. Needs a limited MM probably though, so that you don't have to warm-up against pros or noobs...
EDIT Also, not too long matches. 20 minutes for BTB is too much, cut that to 15, or even 12 minutes. Standard Team Slayer round time should be 10 min at most.