Maybe Nagios check queue already had scheduled checks of the hosts. Maybe the scenario was like this:
Check of DAD (OK)
DAD went DOWN
Already scheduled check of HOST1 issued and saw it was unreachable
The same for HOST 2
The next check for DAD saw it is DOWN
Try to schedule checks for HOST1 and HOST2 less frequently then for DAD, and see if it happens again. If it does happen again, then it must be that something is misconfigured.
Another question. After DAD goes DOWN, are notifications still issued for HOST1 and HOST2?
In fact, i have found the problem. Like you say, check of children was already down before the parent. That’s why nagios still send notification about children because children was down before the parents.
But when the parent goes down, i continue to receive host down notifications for children.
Another question. After DAD goes DOWN, are notifications still issued for HOST1 and HOST2?
Yes, it is the comportment of nagios.
Maybe your network is in such state. As I can see your parent host is on the same network as child hosts, maybe that is the problem.
If your Nagios box is on separate network, you could try with defining host dependencies. Also try it if all hosts (includung Nagios) are on the same network. Maybe it will work somehow.