Just in case anyone else comes across this bug, I finally found a workaround.
The city was built on top of an air shard. Adjacent to the city was one of that faction's outposts. Stationed on top of the city was a caravan that refused to move.
I first had to take, then remove the outpost. I then had to attack the caravan (which forced me to move onto the city). I then had to move off the city and end my turn (the army ran out of moves).
On the next turn I attacked the city (do not autoresolve). After winning the battle, I then had to click on the city's shortcut in the city menu on the left side of the screen (do not click on the city square).
By doing the above steps, I was able to get the city selection menu on the lower left of the screen to come up without a CTD. From there, I was able to raze the city, thus breaking the CTD loop.