Your proof seems very nice to me. You have represented your decimal as a (potentially) reducible rational with $10^n$ as the denominator. Clearly reduction will not introduce any new factors into the denominator so the only factors of the denominators are the factors of $10$, i.e. $2$ and $5$.
The converse is similar. Consider a fraction of the form
$$r=\frac{x}{2^a5^b}$$
If $a=b$ then it is easy to see that we have a terminating decimal with the same digits as $x$ (except shifted of course). If the factors on the bottom are unequal in power, then try to "complete" the $10$ to get a form similar to the previous case. You can then finish off by using the uniqueness of the decimal expansion for a number.
Look at the classical division algorithm: after you have exhausted the digits of the numerator, you will continue appending zeroes 'past the decimal point'. As the remainder is smaller than the divisor, it is finite and the same values will come back periodically. The period length of the decimals cannot exceed the value of the divisor minus $1$.
Base $10$ example, $83/7$:
$83\div 7=10$, remainder $1$ ($=8-7$).
$83\div 7=11$, remainder $6$ ($=83-7\cdot11$).
$83\div 7=11.8$, remainder $4$ ($=830-7\cdot118$).
$83\div 7=11.85$, remainder $5$ ($=8300-7\cdot1185$).
$83\div 7=11.857$, remainder $1$ ($=83000-7\cdot11857$).
$83\div 7=11.8571$, remainder $3$ (=$\cdots$).
$83\div 7=11.85714$, remainder $2$.
$83\div 7=11.857142$, remainder $6$.
$83\div 7=11.8571428$, remainder $4$.
$\cdots$
Conversely, when you have a periodic number, if you shift it left by one period and subtract the original, you obtain a terminating number by cancellation of the decimals.
$$11857142.8571428571428571428\cdots-11.8571428571428571428\cdots=11857131,$$ hence the number is
$$\frac{11857131}{999999}=\frac{83}7.$$
Best Answer
This is a consequence of FTA = Fundamental Theorem of Arithmetic (existence and uniqueness of prime factorizations of integers).
Suppose the real $\rm\,r\,$ has terminating decimal expansion with $\rm\:k\:$ digits $\neq 0$ after the decimal point. Then multiplying it by $\rm\,10^k$ shifts the decimal point right by $\rm\,k\,$ digits, hence yields an integer, i.e. $\rm\: 10^k r = n\in \Bbb Z.\:$ Thus $\rm\, r = n/10^k\,$ so canceling common factors to reduce this fraction to lowest terms yields a fraction whose denominator divides $\rm\:10^k\! = 2^k 5^k.\:$ By unique factorization the only such divisors are $\rm\:2^i 5^j\:$ for $\rm\:i,j \le k.\:$ Also by unique factorization the lowest terms representation of a fraction is unique, so there cannot exist another equivalent fraction in lowest terms whose denominator has prime factors other than $2$ and $5$. This completes the proof.
Exactly the same argument works if we replace $10$ by any other radix.