Your step 6 is fine, because when any of the standard deviations is zero, correlation is undefined.
So you need to prove that $b\cdot\mathrm{sd}(y)=\mathrm{sd}(a+by)$.
Your next line is odd, because you have $x_i$ on both sides, but:
$$\mathrm{sd}(y)=\sqrt{\sum (y_i-\mu(y))^2}\\\ \mathrm{sd}(a+by)=\sqrt{\sum (a+by_i - \mu(a+by))^2}$$
Then use that $\mu(a+by)=a+b\mu(y)$.
And since your proof is actually the reverse, you don't need to be worried about multiplying both sides by $\mathrm{cov}(x,y)$. That is, the "real" proof is to start by proving that $\mathrm{sd}(a+by)=b\cdot\mathrm{sd}(y)$, then reversing your argument above. So the only thing you need is that $\mathrm{sd(x)}$ and $\mathrm{sd(y)}$ are non-zero.