Disableing the input manager won’t help or similar stuff.
Its a windows os level thing. If there is no frame renderd for x seconds the window is grayed out.
The only thing you can do to prevent this, is render a frame every few seconds.
So devide the total load time betweena few frames.
If you have one thing single thing that needs very long, you need to rethink on how to split it into multiple parts, or do it in the background.
The mipmap calculations is just on of the problems, and might be enough if the rest is fast.
Another could be the loading of models/audio/textures in the render thread. In that case a ThreadPoolExecutor that gets load/precache tasks, and enques the results are a solution.
Basically the only things that must be in the renderthread are:
Uploading textures, done automatically by jme the first frame a new texture is displayed -> Solution in the background while still loading attach not everything at once, but only one per frame, to reduce the work per frame.
Uploading meshes, usually very fast, but for very large might needs some time, same solution as for textures.
Compiling shaders, same as textures, possible trick, creata a quad and let it only use one shader, that way you do not have to compile all shaders for a whole model the same time the textures and the mesh are uploaded, as a quad is as simple as it gets.
Well and rendering of course, but if you manage to slow the normal rendering down to a point where you get the not responding between every frame, you should start optimizing that first.
EDIT: hm to late, already solved 