Calling setCancelled(true) for the EntityChangeBlockEvent has no effect. This issue only affects FallingBlocks as Mojang added a condition to a if statement before the event call happens.
This basically means that the change to the block happens before being able to intercept the event itself.
This can also be viewed here at line 24: EntityFallingBlock.patch
The solution would be to remove the last condition [this.world.setTypeAndData(blockposition, this.block, 3)] on the if statement.