Throw CancellationException when blocking call cancelled as opposed to returning null

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