It should be made somewhat easier by the addition of the following condition which you can find in the campaign script of the Norman prologue.

Code:
monitor conditions I_SettlementUnderSiege Nottingham
end_monitor
You should be able to get away with a really basic garrison script without it being megs in size now.