The concept I had in mind was more Client-Server relationship.
The DF process is too timing critical to be distributed (sanely). Instead, it runs on big iron. Since DF already uses abstracted graphics, this is not a problem-- DF in curses mode is already daemon-friendly, aside from being single user.
Instead, the DF process is run by a multi-user daemon, which has local process access (EG, it can hook the DF process and memory, and poke around in it like dfhack does), and provides the 'server' portion of the combo. Multiple users can log into this daemon, it collects data from the active DF instance, (and keeps the game UNPAUSED, or at least, has options to allow unpausing from any user) then delivers data on demand to/from any connected clients for their local viewport.
The game changer is the client. The client is "dumb", it has no idea about the internals of the DF process. It does not need to. It reimplements a gui, has code to fetch data, and has a presentation layer. That's about it. A user using the client can have the data presented in any number of local tilesets, (due to the already abstracted graphics system used by DF, a highly compressed text data stream can then be rendered using graphical tiles, 3d primitives, whatever.) and can interact with the running fortress in near realtime (latency and flutter being issues, but no worse than most MMOs already have) All the client does is present a slice of the DF world to the player (which it requests from the server), provide local surrogates for the menu system (which wont pause the world!!), and communicate with the server daemon to make the user's desired changes get implemented on the server-hosted fortress.
The big issue is going to be resource allocation (No, I mean inside a fortress-- remember the infamous beekeeper bug? That was a resource allocation issue) eg, What happens when player A allocates 200 green glass blocks, while player B allocates another 200 green glass blocks, (since there is no pausing!), but there are only 300 green glass blocks free-- The game already has a bit of code to handle "Lost building material" (EG, you create a job designation that tasks an item, then you immediately atom-smash the item that is tasked. Urist still wanders up to the last known site of the item, then you get a "Urist cancels X, Job item lost or destroyed" message, and the task is canceled.) but i dont know how robust it is. Thankfully, the game already has some local compartmentalization that we can utilize--- BURROWS. This way the green glass blocks in Player A's burrow is already semi-discrete from the green glass blocks in player B's burrow, and the server can report this number reliably to a connected client, and that client can have a reasonable assumption that it can make a designation operation with those resources without having the other player cabbage them out from under them. (It would also make inter-burrow minecart systems more useful, as inter--player cooperation to make resources available to other players through dump zones inside burrows would be a new and useful dynamic built on top of existing systems.)
Yes, fortress mode with simultaneous players would be a different experience. Last I checked, that was kinda the whole point.