Following this, going through and forbidding large amounts of constructed stone blocks should decrease lag? Am I following correctly?
Depends on what the game is querying when trawling the stone list for jobs, or how jobs are queued. If each stone is queried each step, and forbidding will halt a full query, that reduces processing time. If jobs are queued only as needed, say when a stone stockpile space opens up, then it does little in general, though it reduces the one-time search for a suitable stone to fill the task.
What's the evidence that a large number of stones causes lag? Is it just an assumption (a good one at that), or is it based on empirical observation? Something along the lines of "I eliminated X% of stone and observed a sustained non-negligible boost in running FPS."
Even more appropriately, what's the evidence that even constructed stones can contribute to this lag? I know constructed stones are still tracked, but they may not belong to the same lists that are being queried for jobs. The z-stocks menu is not a clue, as that obviously does something much different, which is trivial to test: open up the z-stocks stone menu vs. designate a stone wall for construction with no possible obstructions on the revealed map (i.e. all loose stone is reachable); the latter opens much faster, but both presumably must search for and classify all stone. In fact, the former should intuitively be faster, as the stone list should be ready memory, whereas the construction actually has to perform a
search on all reachable tiles.