Well, I've played two battles in my recent Baktria campaign where a rebel army attacks my army during a siege. In the first instance, the enemy army might have been within the siege anim. It and the garrison army were entirely destroyed (a couple hundred got out actually, but they were "fighting to the death" in the battle start menu), and were both commanded by captains. I got a ctd no matter what I did, running the script or not, clicking on the stats button or not, ending or continuing battle or not.

Second battle, in Taxila, enemy army attacks from behind, so outside of the siege anim. The garrison force had a general, the attacking force did not. Both armies were just about annihilated, though again a couple hundred from the garrison escaped but were "fighting to the death." No ctd.

The differences between the two seem to be: one had a general involved, one may have been on the siege works anim, while the other definitely wasn't. Other than that, they were very similar.

I've also fought two field battles where the enemy had reinforcements, and neither resulted in a post-battle ctd.