Regarding the inefficiency of the engine. There is something seriously FUBAR with the design when you must choose the size of simulation (the rendered rows and columns of ASCII representing the playable zone in the window not the physical dimensions) at the beginning of a game before embarking. The performance of the game is directly proportional to the number of blocks in this zone + the number of dwarfs and NOT the actual stuff happening to them.
The bad part is that you have to completely start over and embark with new dwarfs if you decide that your system can/can't do a bit more and you wish to adjust the size of the zone.