I have an idea for the king issue:
Capital cities would have to have towns within a certain number of blocks of them (1000, 2000, 2500?) Lets say the capital had a town on its North, West, East, and South sides. To capture the capital and be able to kill the king, you have to capture the towns around it. Here's the catch: If you don't have a town within those certain number of blocks, say, you have no town on the South side, they can go directly into the Capital, and bypass the towns guarding the other sides, being able to go directly into the Capital to ill the king. You'd be able to have multiple towns around the capital guarding it, not just one ring.
(Sorry if this wasn't explained well, may try to re-explain if requested)