Мы говорим о том, есть ли гарантия того, что что-то отменилось мгновенно после того, как вы послали сигнал на отмену. Нету такой гарантии. Возможно Рх там блокирует поток пока отмена не выполнена, но наличие блокировки - это как бы совсем не есть хорошо.
Дело в том что корутина работает на главном потоке. Следовательно она гарантированно suspended, пока выполняется job.cancel(). Далее она должна проснуться, чтоб выполнить collect{}. Получается она просыпается из suspended гарантированного ПОСЛЕ выполнения Job.cancel.