I'd rather call Simulator unload from `Simulator.worker` setter, where we already listen for `detach`.