Here's the answer to the question I initially asked (and a summary since most people who responded can't read):
I replaced my thermostat using a D1 mini (ESP8266), that uses wifi in order to query the temperature band to control to. Using an actively powered relay board to control the HVAC system is not feasible since I am constrained to using a battery pack - my HVAC system did not have a C wire that could be used for power. If a C wire is present, that should be used for power alongside an actively powered relay board.
4AA batteries is MORE than sufficient to run an ESP8266 thermostat that manages a HVAC system - I'm expecting several months, if not more, of lifetime. While the power usage is not negligible, the ESP8266 can be in light or deep sleep 99.9999% of the time. I went with the TQ2-L2-3V to act as my latching relay. A latching relay requires 2 GPIO pins to operate. Heating and Cooling requires 4 total. That didn't leave me with enough GPIO pins to control a fan separately. Since the TQ2-L2-3V is a 2 coil relay, I used the other side for fan control, which means each latching relay is heat & fan on or heat & fan off (same for cooling). Realistically, I don't see the need to have the fan on when not actively heating/cooling so this was an acceptable compromise. The average power draw of the latching relay is essentially 0, its only drawing during a small, <100ms pulse.
To latch the relay from one state to another, there is a concern of a voltage spike rebounding back and frying your board pins. To prevent this, I used a diode (1N4148). This is what connects pins 1&5 and 10&6, only allowing current from 1 to 5 and 10 to 6. Another thing about this relay is that the amperage from the GPIO pin probably isn't sufficient. So I used a transistor (BC550CBU) to allow full current from the 3.3V pin to drive the latching.
Here is an example wiring diagram:
In the diagram above, "3" is the base/control pin, "2" is the collector pin, and "3" is the emitter pin for the transistor. The power source there should be the 3.3V output from the D1 mini.
Something to consider doing is adding a physical temperature switch as a fail safe. Something like an AC, NC Snap Disc Thermostat Switch that opens if the temperature exceeds its safety bounds. (e.g., if temp > 85, the switch opens and doesn't allow for current to flow to the heating circuit). They are kind of expensive and, since I will know if the board isn't operating or connecting to the server, I chose to forgo these for now.