One idea I played with but never implemented was using a variable in the 'Mark Overdue when not completed by' field instead of a hard coded time. When the application is generated, you could use javascript to modify the times before the variables are resolved and assigned to jobs.
So, if you have an expected 2 hour outage, jobs that would normally be overdue at 7pm would be set to 9pm. This all assumes you know the outage window prior to the the application being generated.
Like I say... never got around to testing this. Just an idea.