After lots and lots of trial and error, I'm now using the campaign mode. I basically tried everything I could think of, and while I had high hopes a couple times, I always ended up crashing the game.
Generate a map in free mode with your mod activated, save game and copy .sav file to res\campaign\eu/usa\08. You can then have script.lua in that folder to deal with missionutil and it shares globals with mod.lua in the mods folder. Still compatible with other mods and you can even add mods when loading a saved campaign game. I fail to see why missionutil isn't available in free mode, it's an essential modding tool.
Campaign mode has a few issues i'm still unfamiliar with, so I can't go in details, but sometimes I get a new map generated with the free mode settings when trying to load a saved campaign game. It seems to have to do with having all tasks done before saving the campaign game, but I'm not sure. When that bug kicks in, script.lua doesn't work.