How can I pull cable through wood and metal framing without damage?
The simplest thing I could think of would be to use MC cable, the armor is pretty rugged.  If you don't want to re-do the entire run, you could transition from NM to MC in a metal box mounted over the hole you made.  Bring the MC in the back of the box, screw the box onto the top plate face up, and enter one of the sides with NM and a &quot;button&quot; NM clamp.
In my opinion MC with a right angle connector on top of the water heater makes a nicer install anyway.