You may be hitting this scenario from my experience:
As you have three nodes you begin to get deadlocks between load tasks.
These deadlocks cause tasks to be postponed, but real troubles happen when
they survive past 30 seconds and are dumped to logs. There's massive amount
of data in your tasks
I'm running compute tasks to load csv files into an a cache. Program runs
fine on one node but I get out of memory errors (Java heap) when running on
3 vms. It's 2.2 and I've tried various config options. If I comment out the
stream use then Ignite still seems to stop after several 1000 tasks