Yes, your proof is correct. The cornerstone of this proof is that you used $$H, K \leq G \text{, } K \lhd G \text{ implies } \langle H \cup K \rangle = KH$$ so I think that it is interesting to include a proof of that.
Indeed, we can write $hk=hkh^{-1}h = k^h h = k' h$, because $K$ is normal. Then in particular given any word in $\langle H \cup K \rangle$ we can write it as $kh$, by "moving each $k$ to the left" as we did above. Trivially, it follows that $\langle H \cup K \rangle = \langle K \rangle \langle H \rangle$.
Note that since every word contains finitely many letters this proof does not require $H$ or $K$ to be finite.