Throw CancellationException when blocking call canceled as opposed to returning null

@jhump raised a good point that returning null can lead to NPEs, CancellationExceptions would be more helpful.