The issue was in my misunderstanding how inheritance works.
If I put Base script and Derived script on the same gameobject, then there will be created two instances of Base script and ProcessAllCubeDataOfUpcomingChunk will be called twice.