The AI, from my experience, never waits sieges out, and usually assaults the turn after. My guess is that since the AI is fickle, if they were to wait sieges out more often, they would almost never complete a siege since the campaign AI would tell them to do something else during the 5+ turns it waits. Are there any entries in battle or campaign text files that governs the AI's determination to assault, or wait? Is there a script you could possibly add? Or a trait that might trick the AI into waiting?
If it helps anybody, it seems the AI is much more eager to wait out forts than cities or castles. Perhaps time is the only thing it considers.