Why do, in UTF-8, two-byte codes range from U+0080 to U+07FF instead of U+0080 to U+087F

In UTF-8, two-byte codes are used to encode the code points from U+0080 to U+07FF (2^11 – 2^7 code points) instead of U+0080 to U+087F (2^11 code points). I fail to see, why the range of valid two-byte codes starts at C2 80 (11100010 10000000) instead of C0 80 (11100000 10000000). Why would starting two-byte codes at C0 80 break the self-synchronization guarantees of UTF-8? If a reader started reading in the middle of a multi-byte sequence at a continuation byte (10xxxxxx), it would still be able to uniquely identify (and move to) the next single (0xxxxxxx) or start (11xxxxxx) byte, wouldn’t it? (Also, would starting the range of valid two-byte codes at C0 80 eliminate the potential problems associated with overlong encodings – as, for instance C0 80 would encode U+0080 instead of being an invalid encoding?) How does excluding just two particular byte values (C0 and C1) as obviously invalid increase error tolerance in any significant way? (After all, a single-bit error might just as well transform one valid code into another one?)