@Kzanu: thank you for offering - much appreciated, but looks like it won't be necessary.
Managed to reproduce this and eventually narrowed it down to market procurement mission creation, of all things.
Turns out it was creating new people, and if a mission wasn't accepted, it was still keeping them around forever, so the list of people grew and grew. Then when creating new missions, it'd look through the list (which, in Baqar's save, had grown to 2400+ people) trying to find a matching person to use. Which wouldn't be that bad by itself (2400 isn't too long of a list to iterate over), but it was also running in quadratic time for... reasons. It'd try to create new missions/prune existing ones every couple of seconds, which is where the stutter would happen.
So, anyway, long story short: this is all fixed. Thank you all for your help! Took a while to track down, but would've been way more time-consuming without a save.