I'm looking for something like an optional number of "repeat wait minutes" on the job/task flow for a notification. If the value is blank/zero, notifications are sent for every failure like they currently are. If the value is 30, the first notification is sent as usual. But subsequent notifications wouldn't be triggered until at least 30 minutes after the last notification (assuming that the job/task is still running and failing). This could help prevent a flood of emails (or whatever task is defined in the notification).
It might also be helpful to have an additional job/task variable, "Number of failures". This would be similar to {JOB(Active|NoExecutes)} or {TASK(Active|NoExecutes)}. If the job/task fails successively, the counter is incremented for each failure. But it is reset back to zero whenever it executes successfully. This variable could be helpful in the notification to show how bad it is.