Shouldn't this be handled by the task itself to ensure that it doesn't update the status after this has been done but before the cancel signal is received?