It was weirdly split which parts the task does edit and which parts the main thread does.
CMapGeneratorWorker is now unaware of threads and synchronisation (Except for the progress). There is no explicit std::mutex anymore.
The only purpose of CMapGenerationCallbacks (the old CMapGeneratorWorker) is to provide the callbacks to the script (hence the renaming).
The interface is easyer: MapGenerator::GetResult could have ben called when the generation wasn't finished (leading to UB). Now there is only one function which returns when the generation finishes.
Likely performance is improved but that's a secondary-effect.