I think the airlines are as honest as they can be given past experience. If they think it will be ok in 2 hours they can't say that because what if the weather doesn't clear. They also may not know it will be ok. So they don't tell you anything until the plane has been cleared to and has taken off, since by then the chances of them being massively wrong and getting more yelling is much more slim.
AS for considering children what would you have expected? Four hours in an airport isn't hat much, If you got there 2 hours early that is only the flight being delayed by two hours... which is pretty common. I know it got longer but 4 hours isn't bad.
As for what to do when they realized they wouldn't be getting out until the next day... go get a hotel room. No the airline isn't going to pay for it but that doesn't stop you from taking care of your children and getting a hotel room. (Goes back to my post before about making sure you have contingency money on hand, even if its a credit card, as even with
travel insurance to reimburse you would need money now) Unless the airline was still saying the entire time that they would leave shortly after the plane got there (at which point I understand the frustration as you couldn't actually leave) but still wouldn't be appropriate to yell.