1.12.2 ChunkIOExecutor::syncChunkLoad MCUtil.ensureMain?

Hi
I have a problem with Paper while loading chunks in another thread.
I use World::getChunkAt.
My plugin works perfectly with CraftBukkit and Spigot servers, but not with Paper.

Paper prints stack trace like:

[04:51:04 WARN]: java.lang.IllegalStateException: Asynchronous Async Chunk Load! Blocking thread until it returns
[04:51:04 WARN]:        at net.minecraft.server.v1_12_R1.MCUtil.ensureMain(MCUtil.java:54)
[04:51:04 WARN]:        at org.bukkit.craftbukkit.v1_12_R1.chunkio.ChunkIOExecutor.syncChunkLoad(ChunkIOExecutor.java:18)
[04:51:04 WARN]:        at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:170)
[04:51:04 WARN]:        at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:153)
[04:51:04 WARN]:        at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:149)
[04:51:04 WARN]:        at net.minecraft.server.v1_12_R1.World.getChunkAt(World.java:357)

Paper uses MCUtil.ensureMain to warn and execute instance.getSkipQueue in main thread queue.

package org.bukkit.craftbukkit.v1_12_R1.chunkio;
...
public class ChunkIOExecutor {
...
    private static final AsynchronousExecutor<QueuedChunk, Chunk, Runnable, RuntimeException> instance;
...    
    public static Chunk syncChunkLoad(World world, ChunkRegionLoader loader, ChunkProviderServer provider, int x, int z) {
        return (Chunk)MCUtil.ensureMain("Async Chunk Load", () -> {
            return (Chunk)instance.getSkipQueue(new QueuedChunk(x, z, loader, world, provider));
        });
    }

I wonder why Paper does it.
Method instance.getSkipQueue uses mechanics to allow loading chuncks from another thread.
So, it works perfectly without any MCUtil.ensureMain.

Is it possible to remove async check there?
May be I need to post somewhere issue about this?