TL;DRHave the menu run in its own thread, so it is always responsive.
What ?I want the factoio menu to be available and responsive at all times. So I think, the solution would be to dedicate a thread to it, which runs independently from anything that happens in-game.
Why ?I play on mutiplayer almost only. And there stuff may happen that makes the game lag - heavily. Really heavily. like 2 minutes or 5 minutes lag. This could be because the server lags, because my local cpu cannt keep up or any other things i do not know about. But what I know about is that everything becomes unresponsive then. I can not even summon the main menu then - because maybe I want to quit the game. And to me this really is low user experience. I understand that some stuff is heavy on calculations - like blowing up a quadruple reactor powerplant - but I do not understand why the main menu obviously has to run in the same thread as the code that does those destruction calculations. There is no reason for that.
Recently I was playing on redmew diggy - the underground scenario, which was featured in some friday facts here. And some player had the very inventive idea, to dig tunnels using nuclear explosions. Three chained nuclear explosions resulted in the server lagging for 3+ minutes. Those players who got dropped from the server, were the lucky ones. Unlucky ones like me were stuck with a frozen factorio. And I had to kill it via task manager, because the main menu would not pop up for 3 minutes, on hitting escape.
It is not the end of the world, but to be out of options, especially in extreme situations, is really unnerving me.