I don't know if you could apply this to your use-case, but we've always looked at these types of requirements a little differently. We don't usually throw late file alerts based upon how many times we checked, but based upon SLA business rules.
Say for instance we have an incoming file that is supposed to arrive by 4am, and if it has not arrived by 6am we need to send an alert, and if it has not arrived by 8am we need to send a more stern alert. We would implement the two alert events as new workflows that are scheduled to run at 6am and 8am. They consist of a single EMAIL task with a precondition "CHECK HISTORY" rule that checks for successful completion of the file watcher task, and either runs or skips the EMAIL task according to the results of this check.