model.unload calls Free over gRPC and keeps the backend process alive.
llama-cpp does not implement Free, so the call answers Unimplemented,
nothing is released, and the next backend.install for the same replica
reuses the live process. The second LoadModel on that process dies a
second after the slots are initialized, and the controller sees EOF or
Unavailable until the following install starts a fresh process.
When Free answers Unimplemented, stop the process after the unload so
the next install starts a clean one. Backends that implement Free keep
their process, so reloads stay cheap for them.
Assisted-by: Claude Code:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>