I think you should do it the rough way first (if you ever do do it), 'simply' loading more of the world into memory. A slight performance increase would come from not loading ground layers your people don't have access to.
I really can't think of a system that would fully emulate the creatures in your environment, for off-block behavior optimisation, except if you are able to set up paths and sequences for orders that would get generated once you load the block. You probably thought of that yourself, but I'll still explain. If you know at roughly what time will an action be completed (you can calculate it from the skills of the dwarf(es) available for the task in the block, and the position of the task in the order sequence), you wouldn't really need to run constant updating of the dwarves in the block. It's kind of a meta-sim state, that would only need updating once a few seconds unlike the constant update of the full sim. Once the user loads the block with a meta-sim state running, the meta-sim runs the RNG for all appropriate actions, gets the timers to account for completed actions, and alters the block in accordance with results it got, giving names for images and artifacts, destroying mined walls and gathered plants, positioning the dwarves according to where they would most probably end up with their task.
It's probably quite unlike what you are planning for your project (and is probably barely viable), but I just wanted to share my thoughts.