I like your proof. I like how $0.9090909090....$ and $0.090909090909....$ dovetail so we don't get any "there must be a rounding error" doubt.
But I think the real question is why is so constantly hard to believe that $1 = 0.\overline{999}$ that we keep coming up with proof after proof and yet our audience keep thinking it's some strange semantics and not really "equal" equal but just "as close as we like" equal.
We accept that infinite decimals exist because if we divide two numbers where the divisor has a prime factor other than two or five will repeat forever. In high school we sort of treat irrational numbers as a kind of magic, which we really shouldn't; If we have infinite decimals that do repeat, then we can obviously have many, many more infinite decimals that don't repeat because infinite repeating must be statistically unlikely.
We kind of put up willing blinders on this. We can go from terminating decimals to rational number and from rational numbers back and forth. But we go from rational numbers to repeating decimals one way. If go from repeating decimals "back" to rationals, but we think of it as a sort of "party trick" (it's practically a joke with a punch line: "well if you multipy by 1000 and subtract 1 the entire infinite string cancels out! Gotcha!!!"). So we think of an infinite repeating decimal as a "filing anomaly"; the repeating string is just a funny way of writing a remainder.
When it comes to going from infinite non-repeating decimals to irrationals, we think of it as some form of estimating. As for going from an irrational to an infinite decimal, I have a sinking feeling that students think of that as meaningless nonsense that teachers make up. We've all heard "No-one actually knows what pi is, right? It goes on forever so it doesn't actually have a value, right?"
I think to counter this three things should be made explicitly clear.
1) Before we even begin talking about infinite decimals we should clear up estimating and rounding. We have a tendency to think of $19.95$ as being closer "associated" with $19$ than with $20$ and even $19$ as being closer associated with $10$ than with twenty. Because it is obviously less we tend to always round down. That seems natural. Somehow taking the exact same reasoning the the other direction-- since it's obviously more we should round up, is intuitively something we never do.
So if we see something that begins $19.92$.... and then the ending is blurred out or not available for some reason (or goes on forever) we shouldn't think "Hmm, that's a tiny bit more than $19.92$ so it is about $19.92$". We should think "Hmm, it's somewhere between $19.92$ and $19.93$."
2) Infinite decimals make sense and actually DO equal some value. A decimal with $n$ digits has an exact value. Adding a decimal makes a number with a precise $x \le x + b*10^{n+1}< x*10^{n}$ where $b$ is a digit. Doing this an infinite number of times makes this infinitely precise and is a value. The fact that we can't do this in our finite lifetimes isn't really relevant. The value still exists.
3) The decimal $x=5.6938503......$ with infinite decimals is exclusively between $5.6938503 \le x \le 5.6938504$. We can't tell if it is equal to or strictly larger than $5.6938503$ until we check a further decimal. We can't tell if it is equal to or strictly less than $5.6938504$ until we check a further decimal.
"Wait!" I hear a million students shout out "Surely $x < 5.6938504$ because $3< 4$!". Well, that's intuition but it is wrong. The remaining digits past the three may still all add to $0.0000001$. We can't know without further checking.
Okay..... So this would be my high-school level proof that $0.\overline {999} = 1$.
Note: $0.9 \le 0.\overline{999} \le 1$.
Obviously $0.9 \ne 0.\overline{999}$ because the next digit is $9 > 0$. We can continue this indefinitely but there is no need as we don't care what numbers $0.\overline{999}$ are larger than. We care what number $0.\overline{999}$ is.
To argue that $0.\overline{999} < 1$ we'd have to check the further digits and show that $0.0\overline{999} < 0.1$ and to do that we'd have to check further digits. We can't feasibly prove it with this method as we are finite and mortal.
So at this point we do not know if $0.\overline{999} < 1$ or if $0.\overline{999} = 1$.
If $0.\overline{999} < 1$ then there must be some number $y$ so that $0.\overline{999} < y < 1$. What could that number possibly be?
$.9 < y < 1.0$ so $y = b.a.....$ where $b=0$ because $b < 1$ and $1=1.00000...$ is the smallest number that starts with $1.$ And $a \ge 9$. So $a = 9$ as there is nt single digit more than $9$.
And $y \ne 0.\overline{999}$ because $y > 0.\overline{999}$. So $y$ must have at least one digit that is not equal to $9$. What is the first digit that is not equal to $9$? Let's say it is the $n$-th digit and it is $a$. And $a < 9$.
So $0.9999......99a \le y \le 0.9999......99(a+1) \le 0.9999....999$. But $0.9999....999 < 0.9999...\overline{999} = 0.\overline{999}$. So we have $y < 0.\overline{999}$ which contradicts $0.\overline{999} < y < 1$.
So there can not be any number between $0.\overline{999}$ and $1$. So $0.\overline{999}< 1$ is not possible.
So $0.\overline{999}= 1$.