Unloads the model (saving the active agent's snapshot to disk first, where supported). Registered agents survive and reactivate after the next loadModel.
Future<void> unloadModel() => _tasks.run(_unloadLocked);