If your internet goes down that's kinda annoying though.
I think the best system would be you get a penalty if you have multiple quits within a certain time frame.
Having a quit or two a week shouldn't penalise you. Maybe something similar to the way Reach did it except instead of a ban you get a penalty.
I'd say 343 should really crack down on quitters. In competitive playlists like the eSport and 343's own whateverthefuckitis competitive playlist there should be harsh penalties for leaving mid-match.
Here's how I'd handle it:
1. Give people a couple of minutes to rejoin a match they've quit out of.
2. Don't allow quitters to join other matches while the match they've quit out of is still going on.
3. If the quitter doesn't rejoin the match he's quit out of after a couple of minutes he gets a penalty.
4. The more frequently this happens the more severe the penalties will become. They could range from a 15 minute ban to a week long ban from that playlist or whatever.
If you consistently get booted from the internet you should not be committing to competitive matches. Get your internet fixed and if it's your ISP's fault you should try not living in a third world country. Go play in some casual playlists where join-in-progress should be a thing anyway.
Edit: And there should definitely be an option to surrender, but only if the entire team unanimously votes for doing so.