Added timeout-based job cancelling