Magento Block Caching Not Working - Try Using Magento Protected Constructor
You have tried a lot to use Magento block caching, described in here but still your block is not being cache. Here’s a solution do not use the public constructor to write your block cache data, just use the protected constructor to add the data. Then you will see your block will be cached.
In fact I think we should always used protected constructor to initialize anything on Magento. Am I right or what do folks has to say about this?