Just another bug note...
It seems there is a hard coded limit on how many jobs the unity API can schedule and queue up. If I pause the game and queue a huge construction project, workers and guards will completely stop until it gets far enough through the job queue for them to start operating again. This does not seem to have an effect on prisoners though.
I know this horse has been beat to absolute death, but wouldn't it be prudent to schedule pathfinding and jobs across multiple logical processors/threads as long as they are independent of each other as not to create a race condition? I know the unity API is not necessarily multithread friendly, but I believe (if I read correctly) the job scheduler is. A lot of the game is something waiting on something else anyway.
I think some, if not most, of the performance issues with PA is associated with it being mostly hardcoded (which seems bizarre in this day and age). I know the base game got started almost 10 years ago, but even then, having everything ran and read from the executable is weird. I haven't seen something so highly serialized in a long time, but the last project I worked on was STALKER (2007 - 2009), so I have been out of the programming world for a while. I know such a task isn't easy, but there are difficult and less difficult ways of doing it.
I am running an AMD 3900x and 99% of the games workload is running on one logical process. It has a high enough IPC to support an incredibly large prison as the above, but sometimes it struggles. I would never expect the work load to span all 24 threads, but dang, it's only using 16% of the available processing power at full tilt.
Also, just one more thing, if the snow isn't fixable just delete it. It gets cold in Texas and it never snows so it wouldn't be too far outside the realm of realism.