Well, they probably turned the APU on if they were waiting for that long, but keep in mind all flights must be kept 5 miles apart, according to the FAA (correct me if I'm wrong). That is pretty stupid though- waiting for hours inside the plane. Should have just cancelled the flight altogether.
As for the unloading, it would take the passengers a long time to get off, go back to the gate, get their luggage, get back on, get settled,... by that time you could have been in the air already if the passengers hadn't deboarded. That's why many major companies charter or even own their own transports. They can make decisions and divert if the weather or traffic isn't good.
BMW - The Ultimate Driving Machine