The problem is solving $x^2\equiv x\pmod{10}$, or $x(x-1)\equiv 0\pmod{10}$, which means finding integers $x$ such that $10$ is a factor of $x(x-1)$. For that to hold, either $x$ or $x-1$ must be a multiple of $5$, which means the last digit of $x$ is $0,1,5,$ or $6$. Then it is a simple verification that the equation holds in each of these cases.
Rephrased without "$\pmod{10}$" notation, this could be expressed as follows. We are looking for integers $x$ such that $x$ and $x^2$ have the same last digit. This is the same as saying that the last digit of $x^2-x=x(x-1)$ is $0$. That means that $x(x-1)$ is a multiple of $10$. See above for the rest.
You can take log10 of each of the numbers being multipled, sum them, floor them, then add one to get the number of digits.
i.e. In your last example of 2*12321*1000, which is actually equal to 24642000 (you missed a 0, so it has 8 digits).
Number of Digits = $\lfloor log_{10}(2) + log_{10}(12321) + log_{10}(1000) \rfloor +1 = 8 \\
=\lfloor log_{10}(2*12321*1000) \rfloor +1$
I'll begin explaining why this works with a simple observation: You can calculate the number of any power of 10 by simply taking the base-10 logarithm of it, and adding one.
For example $log_{10}1=log_{10}10^0=0$.
$log_{10}10^2 = log_{10}100=2$, etc.
So by adding one to each of these two examples above, we get the correct number of digits. This is just an artifact of the fact that we use base-10 to count. If we counted in base-2, we'd take log2, then add one.
Now, why do we have to floor the number and add one for any general number?
The number 12321 can be thought of as $12321 = 10^4 * 1.2321$, and since it has the same number of digits as $10^4$, the extra $*1.2321$ term should be "ignored" somehow.
Since multiplications in normal space become addition after you take the logarithm, we get:
$log_{10}12321 = log_{10}(10^4*1.2321) = log_{10}10^4 + log_{10}1.2321 \\
=4+log_{10}1.2321$
Since we chose to round down to the nearest power of 10, the number we multiply $10^i$ by will always be in the interval $[1,10)$, and any number in this interval will have satisfy $0<log_{10}r<1$ - so the reason we floor it is just to remove this "remainder".
The final step is just to add one, as I explained above.
Best Answer
The issue comes from not counting the "hidden" occurrences of digits in multiples of $5$, including the multiples of $10$. The digits $1$, $2$, $3$, $4$, $6$, $7$, $8$, $9$ repeat in a pleasant fashion, and if we forgot about the multiples of $5$ (including the multiples of $10$), we would get automatic periodicity. However, the $7$ that is hidden in $35$, and from the point of view of last digits, becomes $7\cdot 9$ on multiplication by $38$, is different from the $1$ that is hidden in $55$, and becomes $1\cdot 9$ on multiplication by $58$. More simply, $600$ and $700$ end in the same digit, but effectively for the last non-zero digit problem they are different.
This unfortunately does not prove that the last non-zero digits are not eventually periodic. It only shows why your reasonable first approach to showing periodicity does not work.