I personally like the army camps around cities idea.
blockade, armies from attackers side can join in any time, increasing the attackers numbers and gear.
Defenders can come from outside attacking the sieging armies.
Fixed battle time of maximum 70 minute. If afterwards there would still be troops on both sides, the battle would take part at the same time the first attack was initiated. That way f.e. everyday would be a siege over the same place till the attacker or defender tickets would be used up.
Any attack on the sieging army which would is supposed to happen before the actual siege fight, needs to be initiated at least 80 min before.(10 min rollcall + 70 min max battle timer)