We could, conceivably, have time pass at a relativistically steady rate. For example, one or more seasons pass every two days, or every day, or every six hours. In that time you get an opportunity to play the season(s). If you don't play your fortress in that time period, it goes on without you. Food is farmed and consumed, jobs that are queued up are passed on, and goblins ambush/siege you. (While, of course, you're military and fortress guard automatically rush out to meet them and you civilians congregate in the meeting halls until the last goblin has died, been captured, or escaped.)
Each seasonal "turn" the players would be able to interact with other fortresses, sending out liaisons, trade caravans, or armies. These units would arrive at the other player's fortress the next "turn" and would act accordingly, returning the turn after that with a report. Of course, it's entirely possible none of them would return at all...
In fact, this system could also potentially be used to allow a player multiple fortresses in the same world simultaneously, which would be awesome in and of itself if you have a world you really want to fully populate but cannot because you already have a fortress there.
Just throwing ideas out there.
Edit: Another thought, to do this you really wouldn't need an active server provided that all the clients would handle the migration/army/caravan code the same way. All you would need would be a database containing the current world as of last turn. Even better, one could potentially have an adventurer visiting active fortresses! (Although losing units to an adventurer that you had no idea even visited would sort of suck...)
[ March 05, 2008: Message edited by: Jamini ]