I had some iron staining left over from having used a steel conduit nut in my light niche when I first got the spa up and running (couldn't figure out what was turning the water green until I drained it and a gallon of opaque rust-colored fluid came out of the light niche).
A pool store recommended dumping citric acid in, but I didn't want to subject my heater to that.
While I was draining the spa this time around with my $40 Harbor Freight sump pump, I had an idea.
When the water level got to about seat level, below all the jets, I dumped the citric acid in and started hosing down the sides with the pump output. Acid is not going to hurt a pump with a plastic impeller.
For about 10 minutes, I just kept rinsing the sides of the tub, and it kept getting lighter and lighter until the brown tinge was completely gone. Then I drained the rest of the water as before.
Result: nice light blue gelcoat, without the worry of acid etching my copper heat exchanger.
I know the acid concentration must have been pretty high since the water was 2/3 gone when I used the amount of citric acid the pool store guy gave me for a 300 gallon spa, but it worked great.