I was wondering if you could add some siege options. Here are some examples:
-Poison a town/castle's water supply. Success means X amount of soldiers/people get "wounded"/sick or killed, meaning less defenders. You can do it once a day, but it only works maybe 2-4 times. Afterward the game should tell you "The garrison has caught onto this, and it won't work anymore as they're testing the water on animals first for the poison." to prevent you from just poisoning everyone to death. A healthy population with a hospital reduces the effect of this option.
- Hurl carcass into town/castle. You'll need to have some cows following you for this option, and nothing happens initially. But it will sicken the town/castle defenders, meaning X amount of soldiers will be "wounded" or killed after X amount of days. A town with a healthy population and upgrades such as a hospital will either be resistant or outright immune to this, as opposed to a town that has a sickly population. A spy can tell you if the town has such upgrades so you can decide if this option is worth it. The wounded get better after a few days, so you should use this to soften them up before you assault.
-Bribe a guard to open a gate. How well this works depends first on your relationship with the faction, and secondly, how well the town likes you (start buying them booze in the tavern and doing guildmaster quests!) The lower your faction relationship, the higher the cost, although if it's really low, say -50 or less, this option won't appear (they won't like you killing their kin, even if they like you personally). Your relationship with the town will lower the cost if the first factor allows this option. The base cost for this option should also be really high, say 50,000-100,000.
If successful, when you assault the town, you fight on the second siege map, the one you normally go to where you kill some of the town defenders. While the defenders still have their numbers, you also don't have to climb a ladder or wait for a siege tower, so it'll be harder for them to defend against your army.
- When besieging a town/castle, a third option appears (instead of just "surrender" or "assault them"). The defenders will wait X amount of days for a relief force to show up. If no one comes, they'll leave the castle/town peacefully, and the attackers will gain control of it. The factors for this will be how far away the fort is from the faction's main lands, and the ratio of attackers to defenders. So if you're being besieged by a marshal-led force of 1500 men, and you only have 150 to defend with, it'll be very favorable to the defenders to let them have the fort without the fight that normally occurs (though don't stick around too long, or they'll attack you normally), and the attackers don't have to sacrifice their men to take it.
This will also present an interesting scenario for both players and NPC empires, especially if you're at war on multiple fronts. Do you send a relief army out to the eastern frontier which will take days to reach? Or do you abandon it in favor of buffering your southern and western borders first against the three empires attacking you there? A fort that's in the far outskirts of your empire and isn't of much strategic value due to its distance may not be worth losing men over. But as you start to lose lands and they creep closer to your main towns/castles, suddenly the attackers are approaching wealthy towns that you could reach within a couple of hours with a relief army, and now they face a similar situation, if defending a castle/town far from their lands is worth the hassle.
This may also help in that it may help influence where you're more likely to get attacked. If they're dumb enough to assault a town/village that's in the middle of your empire, they deserve the beating you're going to give them. But on the other hand, the towns/castles/villages that are right on their borders will be very tempting, and if you're at war on multiple fronts, you'll be hard pressed to defend every area, so some areas will seesaw back and forth, unless they really ticked you off, and you conquer all of their lands just to wipe them out, at the expense of the other nations attacking your other areas.
There should be options to turn this off if you want your tiny garrison to fight to the death against overwhelming odds. But it adds a nice option in case you don't want to lose them and have them retreat to a more defensible position.
Just some ideas I had. Hopefully they won't be too difficult to implement.