Could we have the job put itself into suspend mode if the iteration limit is hit?  And have it pick back up in 10 minutes or something?  That way it's not in a tight loop, but it still shouldn't fall behind.