Y20230423-1000
The test can randomly fail for two reasons: 1) "cancel" may be called on a job that has been scheduled but was not running yet. Then the result status is null instead of CANCEL. 2) "interrupt" may be called before "join" is called, then the interrupt is not processed The changes ensure that "interrupt" is called after "join" blocked and that the job is terminated after the interrupt occurred, no matter in which state it was before.