As we've seen in the last month, there can be so many reasons the Knack Tasks can get stuck or randomly delayed. Usually it's not such a big issue if tasks are run a bit later, but if they relay on each other by using the current date to mark certain records to be processed by the next task, the workflow (or a part of it) will break. To send mails from our records, we have to rely on such a strange combination as the mail tasks can't set any success state.
There is always a reason a task can't be executed when it was scheduled, I've seen that in any application for any reason. (downtime, bugs, configuration errors, delays by huge database or server load, timezone issues, file locks...) The reliable solution was always to save the success date, save a state or to use a message queue system, which cares about the state info by itself.
To be sure the mails were sent, we'd like to update the record, just after successfully sending the mail. I think it would be best to offer an option to set a fix value, increase/decrease a value or set the current datetime.
About a third of our mails weren't sent last month because the tasks were usually dalayed for 2 - 14 hours or not run at all. As your support couldn't provide a solution, we've decided disable the automatic task execution and instead trigger them manually until there is a better way to handle and track the mail submission.