We have two responses for you
The key to this Theorem (it is not a theory) is that it is a proof by contradiction.
Actually it is a proof of a negative statement: there is NO list of all real numbers.
As such, it must be applied not to one list, but to an arbitrary list proposed by your 'opponent' in the proof game.
Opponent gives you a list.
You go through this proposed list creating a new number which cannot be in the list.
You conclude that your opponent has not given you a list - and this will happen for EVERY proposed list.
(In binary, you should check that you did not just give an alternative form of a number: .111111... = 1 after all. An extra bit of trouble which could be avoided in any other number base.)
I think the intellectual puzzle here is not in the details, but in the concept of an infinite process, of how lists might be used to create numbers, etc. Being 'more rigorous' does not seem to bring it closer to something that 'makes sense' to the reader.
You are only listing the rationals of the form x/2^n, 0 < x < 2^n, and there are indeed only
countably many of these. Cantor's argument then gives you the new number 0, not
in your list, but more to the point, you are obviously missing rationals such as 1/3 in your list,
along with all the irrationals.
Cantor's argument is clearer in bases other than two, because of the problem of equivalent
decimals such as 0.199999... = 0.2. If I make a list of numbers in (0,1) such that the first
is 1.99999... and all others have a 9 as a diagonal entry, the diagonal argument can output
0.200000... already listed. There are ways around this, but anyway the output of 0.2000...
does not prove that your list is complete.