Казус в том, что проверка происходит в момент аллокации, а аллокаций происходит в момент тяжёлых вычислений - он обязан дернуть GC чтобы дать кусок памяти, если все плохо.
да, и в этом самый трешак. т.е. есть моменты тяжелых вычислений с большим количеством аллокаций, которые сами по себе занимают много времени, так тут еще подрубается GC и еще больше усугубляет положение