the idle disconnect is there for a reason, you shouldn't really disable it. how would you check for real but involuntary disconnects if you don't regularly check that the connection is still valid?
you should be sending regular ping packets anyway to ensure that everything remains synchronized across all the clients and between them and the server. these will serve to keep valid connections alive.
as James H mentioned, if loading goes too long, it should be broken into smaller chunks and / or multiple passes. providing some time to other processes while loading is better anyway as it lets you update the screen in order to show the player that it hasn't just frozen or stopped responding.