I don't buy into the water heater being the problem. If you ran the pump to get out as much water as possible, then adding 2 gallons of antifreeeze to the tank should allow for 2 gallons to come out the spigots. You may have a clogged filter/screen on the input side of the pump not allowing the antifreeze to get to the pump. Like many others, I bypass my water heater when winterizing. Even with the drain open, there is probably a gallon of water left in it (6 gallon heater). I remove it so I can shake out as much water as possible.
When winterizing I open a hot water spigot to get rid of as much water as I can. I then open the cold water spigot and purge those lines. I then add a gallon of antifreeze and repeat. The fluid coming out of the spigots after a couple of seconds looks like pure antifreeze. I purge as much of this as possible. I then add another gallon of antifreeze to the fresh water tank; and repeat. At this point in time I feel confident that the fluid coming out it 90%+ antifreeze. In PA the temperatures seldom get below 10*, and very rarely get to 0*. I would imagine that the system is good for -20* to -30*; it has never gotten that cold here.
I use the gallon container to recapture the second gallon that flows thru the system. I then use that to start the winterizing of the shower sump. After the shower sump cycles twice with the recyled antifreeze, I then add pure antifreeze for two more cycles.
For the waste tank, I drain it. I then add a 1/2 gallon of pink antifreeze and then pump it out. I add another 1/2 gallon and pump it out. I finally add a full gallon.
I use about 5 gallons of antifreeze. Cost is under $15 and everything as been protected; never had an issue in 17 years.