In order to get the tile entity (!= null), I'm using the breakBlock(), instead of dropBlockAsItemWithChance(), or harvestBlock(), both return a null tile entity.
So, I'm setting the tag in an itemstack and spawning it before the super.breakBlock(). When I do this, it will spawn an extra block, so I need to override the getItemDropped() to null. However, when I do that, it will always drop an item, even in creative.