Your argument works. If $\lambda\ne0$ and $STu=\lambda u$ for nonzero $u$, then $Tu\ne0$ and $TS(Tu)=\lambda Tu$. This shows that any nonzero eigenvalue of $ST$ is an eigenvalue of $TS$. As the roles can be exchanged, you get that $ST$ and $TS$ have the same nonzero eigenvalues.
The same idea shows that the geometric multiplicity is preserved for nonzero $\lambda$. Indeed, if $STu=\lambda u$ and $STv=\lambda v$ for linearly independent $u,v$, if $aTu+bTv=0$ then
$$
au+bv=\frac1\lambda\,(aSTu+bSTv)=\frac1\lambda\,S (aTu+bTv)=0
$$
and so $a=b=0$. As for the algebraic multiplicity, the same ideas allow you to show that the generalized eigenspaces have the same dimension, so the algebraic multiplicity also agrees for nonzero $\lambda$. For an example of this, if $(ST-\lambda I)^2u=0$, then $$STSTu-2\lambda STu+\lambda^2u=0.$$ You cannot have $Tu=0$ for you would have $u=0$. Multiplying by $T$ on the left as before, $(TS-\lambda I)^2Tu=0$, and also as above one can show that the dimensions of the generalized eigenspaces agree.
When $\lambda=0$ the above argument fails because you may have $Tu=0$. But if $S,T$ are square then if $0$ is an eigenvalue of $ST$ it means that $ST$ is not invertible; this forces at least one of $S,T$ to be not invertible (use set) and so $TS$ cannot be invertible and $0$ is an eigenvalue of $TS$.
Things are slightly different if we allow non-square matrices. Take
$$
S=\begin{bmatrix}1\\1\end{bmatrix},\qquad\qquad T=\begin{bmatrix}1&1\end{bmatrix}.
$$
Then $$ST=\begin{bmatrix}1&1\\1&1\end{bmatrix}$$ with eigenvalues $0,2$ while $TS=2$ with eigenvalue $2$.