OK, here are things:
I've noticed that every "day" simulated adds nearly 20MB to the game's RAM allocation. This memory is assigned, but is never released, so far as I can tell. This might be a problem.
Starting multiple New Games just keeps expanding the number. The initial New Game ends up at very near 2048MB; clearly, this is why I was having problems with 32-bit the minute I added any mods.
I tried this out in vmparams:
That resulted in a lot more starts before the crash, suggesting that garbage collection might be an issue.
But when I had a ship on the screen that had been firing as of the moment I clicked "start game", boom, dead again.
So, I tried a line of code in each of the advance() things causing problems...
if(!engine.isInCampaign() && !engine.isInCampaignSim() && !engine.isMission()) return;
And, wow! I had FX mod images on the screen, but the game finished the "days" sequence. Five times in a row.
Sooooo... there's
something. But from what you've told me, that something is impossible?