You could probably write the PID out to a file, then at 3:00 am use that file as a trigger to kill that task and start another copy.
My enterprise job scheduler can kill the job if its not done by a certain time, and then start job X on failure.
Having to get up at 3:00 AM seems like quite a bit of incentive to find a resolution to the actual job issue.