Hi John, using 2 pid loops would ensure that you were getting the most precise control possible, as the best tuning parameters for heating may be different than the best tuning parameters for cooling. that being said, having 2 separate pid controllers makes it likely that they will fight eachother.
the common industrial solution is to use what is known as a "split range controller." in this scenario, one pid controller is used, but if the output is <50%, the signal is sent to the cooling system, and if it's above 50% it's sent to the heating system. most split-range controllers also provision for a different set of tuning parameters for heating vs cooling.
this isn't currently supported by the osPID, but all the pieces are there for a nice hack.