I have three notification users, primary, secondary and tertiary. The latter two are set up with times.begin = 1h and 2h respectively to create an escalation chain.
Most of the time this works just fine, but there are several distinct cases where this fails completely:
Acknowledgement notifications seem to be sent to all users, completely disregarding the times dictionary. I've worked around this in my notify script by checking the age of the status, but this really should not be necessary. It should ideally only be sent to whomever have received the issue notifications, in the same way a recovery notification is.
If an issue has a notification period set to e.g. "workhours" but arises some time before then, it will still use the time since state change time to determine who to send notifications to, rather than the start of the "workhours" period. For example an issue that arose at 6 am, will send a notification to all escalation levels as soon as it enters its notification window that start at 9 am.
The third is similar to the second but applies when a host or service is removed from or exits scheduled downtime while still in a failed state. Again the time since state change seems to be the basis of the escalation rather than downtime end time. (Luckily I have implemented a basic rate limiting in my notification script when this happened to several hundred services yesterday. There was still a lot of noise in the office space though)