Re: 1) It is Steam itself which is an issue on my machine. It requires some libraries that conflict with other (and more important than games) software on my machine. Note that I sometimes have the same issues with Itch and GOG apps/games as well, so that is, sadly, an issue related to my system and not your game. :(
Re: 2) I have done all of that. There are some issues I did not go in to detail...
A) Only idle villagers will defend themselves. They might survive better if they stopped what they are doing to defend themselves.
B) I try keeping my villagers as a "last line of defense", but the idle ones will be aggressive near enemies. I have to give extra time and attention to micro-managing them... which is the problem: I am not a computer that can micro-manage tens or hundreds of villagers per second, nor re-assign them fast enough to halt a starvation rebellion.
C) I am always _trying_ to stockpile food, produce more than I am using, and building granaries near food sources to speed them up. Every wave of enemies has the tendency to disrupt and deplete my food production and reserves. (Strategically, this is how reality works as well. But reality also has real people who can think for themselves and act upon needs and priorities.)
As a side note, it might also help if villagers standing around idle would (or in towers) would automatically go repair structure nearby which are damaged. Some of the AI logic, however, makes this problematic -- I tried to position some villagers near walls and towers so I could quickly assign them to repair, but when an enemy came within range, the villager would go chase them... Even if the villager had to walk across the map to pass through an opened gate to get to the enemy.
Another issue is with gates. It might be better if they could automatically open for my units and close (and/or stay closed) when an enemy unit is nearby.
Lastly, it might help if units could move atop walls, either to attack nearby enemies or perform regular patrol actions.
Anyhow, my point(s) are aimed at one basic issue that is constant in the game: Time (and rapid micro-management). Slow down the rate at which a revolt happens (or as I said, eliminate it, and instead let units slowly die off from starvation; or some combination of the two), giving the player a more balanced opportunity to both identify when there is a problem and execute corrective actions. The UI itself compounds this because there is no way to quickly move to a problem spot so I can correct it.
Without those complications, all the problems I mentioned would be relatively minor annoyances rather than fatal and frustrating flaws.