One thing which never came up in your original thread is that before you could consider generating multiple worlds in multiple threads, the game would first need to be modified in order to allow multiple worlds to be loaded simultaneously, and that would actually require some very significant changes and likely result in a performance loss when playing with just one world (because everything would need to know which world it was looking at).
I'm not convinced that having multiple worlds loaded at once would either be especially difficult or require "very" significant changes, or that having to know which world it's looking at would have any kind of performance hit.
Sure, there would be a slowdown of some amount if you have another world open at the same time, but
certainly not if you only have one world loaded/generating, and doing multiple would sure be faster than generating the worlds one at a time (
some people have actually done this by running more than one `Dwarf Fortress.exe` at a time), and as for playing in a world while others generate, this would indeed be slower both for playing and generating, but the idea is that you wouldn't just be staring at the screen (well, the new legends browsing info would make it less boring, but still).
And the performance hit while there are multiple loaded/active would have nothing at all to do with "everything needing to know which world it's looking at", it would be from bottlenecks caused by sharing the cache and RAM data channels with other worlds. I can't even tell what you mean by everything "needing to know which world it's looking at".
On the other hand, putting the UI on a separate thread from the actual world generation process (while still keeping it "one world at a time") would still require the addition of synchronization logic in many different places - otherwise, adding a new record to a list (e.g. a new civilization, site, historical figure, or just a history event) is likely to be non-atomic, and if the code that updates the list is interrupted by another thread, the list could very briefly end up in an inconsistent state where trying to access its contents could cause the game to crash, and even worse things could happen if worldgen tried to remove something while the UI was trying to display it (e.g. if a world got Rejected and it had to start over from scratch).
Well obviously synchronization logic would be needed, but I don't see why it would be in "many different places"; there's a very limited and specific set of data that needs to be sent to the UI, and it doesn't need to be sent continuously.