So I finally tried this, and it does work. For the league I am setting up, here are the steps I took:
Suspending play for war:
- Turn off AI ability to change rosters (League Setup home)
- Turn off trades for all subleagues (Rules)
- Uncheck “Schedule Spring Training” (Options)
- Disable Financial System (Financials)
- Turn off other news generating things: suspensions, drug suspensions, injuries, scouting, coaching (Global Setup)
- Turn off Almanac (Almanac Options)
- Set schedule in League Setup to zero games, for every EVERY LEAGUE AND SUBLEAGUE (Options)
- On dry run, I screwed up by doing only one sub-league and I missed the other three
- Go to preseason.
- Clear schedule, create fictional schedule (should be zero), make sure you do this for EVERY LEAGUE AND SUBLEAGUE (Edit League Schedule)
- Again, on dry run, I screwed up by doing only one sub-league and I missed the other three
Resuming after war:
- Turn ON AI ability to change rosters (League Setup home)
- Turn ON trades for all subleagues (Rules)
- Uncheck “Schedule Spring Training” (Options)
- Enable Financial System
- Turn ON news generating things: suspensions, drug suspensions, injuries, scouting, coaching (Global Setup)
- Turn ON Almanac (Almanac Options)
- Set schedule in League Setup to play your number of games, for every EVERY LEAGUE AND SUBLEAGUE (Options)
- Go to preseason.
- Clear schedule, create fictional schedule (should have your number of game shown), make sure you do this for EVERY LEAGUE AND SUBLEAGUE (Edit League Schedule)
And the best part is, the players do age, and the intervening years are not shown on their records, although those years are shown on the team record as all zeros (unless you forgot to turn off financials).