You cannot simultaneously believe that "you never get there" (i.e. an infinite number of nines is not constructible) and believe that the syntax 0.999... denotes an
actual infinite string of 9's which has a straightforward value (that happens to be precisely 1).
That simply isn't the basis for how 0.999... is regarded as 1.
Rather, 1 is the supremum ("least upper bound", LUB) of the countably infinite set { 0.9, 0.99, 0.999, ... } as a subset of the reals. We define that 0.9... denotes that supremum: i.e. that the ellipses suffixed to 0.9 denote the expansion of 0.9 into the set { 0.9, 0.99, 0.999, ... } followed by determining the LUB of subset among the reals.
No "infinite string of 9's whose length isn't a natural number" nonsense is involved.