Your edit hits the nail on the head:
The disjunctive syllogism on step 5 works only if $P$ and $\neg P$ are mutually exclusive. But of course they aren't.
What do you mean "of course they aren't"? In classical logic, of course they are.
Statements in natural language have varying degrees of vagueness, which accounts for odd behavior - e.g. as you say in a comment, "The sky is cloudy," being a qualitative statement, could be construed as both true and not true. However, such statements are outside the purview of classical logic, which is designed to handle only precise statements.
(CAVEAT: My terminology of "vague" versus "precise" quite clearly reflects my own classical bias, and those who prefer a non-classical logic might well take issue with it. I do stand by it, and am prepared to defend it, but I want to point out my own bias here for fairness.)
Now, this isn't to say that such statements can't be treated by mathematical logic - which is much broader than classical logic - at all. Each of the following addresses issues around disjunctions, negations, and implications in an attempt to better reflect the nature of natural language:
But that's not necessarily a flaw in classical logic, it just reflects a narrower focus. We wouldn't say that group theory is inferior to magma theory, after all, even though magmas are far more general! And in fact as a classical-ist, I'd argue that classical logic really underlies each of the others and is the "true" logic (but wow is this ever a controversial statement among logicians, so definitely take this as a statement of my own opinion rather than clear unbiased truth).
So I think the takeaway is this: you are looking for a logic which faithfully handles some of the oddities of natural language, which classical logic certainly doesn't. Whether this is a fundamental flaw in classical logic, or a revealed problem with natural language, will ultimately depend on the interpreter (says I: down with natural language! :P).