The problem is that "if he has lived X turns AND Era has changed" will in most cases cut the rest life time down to 0.
Okay, is probably not worse than extending it with every reloading minimally.
Random is also an option, but I'd rather have the fixed time still in, just in case that somebody really only wants to use a set time frame.
Just curious though, the initialising codes were all done in onGameStart only without onGameLoad, but the last time I tried for my own stuff, the values were all gone if I load a game.
If you want the fixed time I wouldn't see much difference to just set it to the era rather than an abstract/subjective era + x turns.
in order to store the turns a unit has left for use on reload, you should try using ScriptData() for the pUnit...