Your proof is mostly correct. There is one fairly inconsequential error:
$$|a_n| < 1 \implies |a_n^2| < |a_n|.$$
It really should be
$$|a_n| < 1 \implies |a_n^2| \color{red}\le |a_n|,$$
as the strict inequality doesn't account for the possibility that $|a_n| = 0$. But, with or without the strict inequality, the comparison test still applies.
Note that the comparison test requires that the terms of both series be non-negative. That is, the comparison test is a kind of squeeze theorem for series, where a series is squeezed between a convergent series and the $0$ series. Indeed, you can generalise the comparison test so that the lower bound need not be the $0$ series.
So, for this reason, we need absolute values for this argument to work. It turns an absolutely convergent series into a non-negative series. As a specific counterexample where we don't have absolute convergence, recall that
$$\sum_{n=1}^\infty \frac{(-1)^n}{\sqrt{n}}$$
converges conditionally by the Leibniz Alternating Series test. Its square is the harmonic series, which famously diverges. So, $\sum a_n$ converging doesn't mean $\sum a_n^2$ converges, when conditional convergence is involved.