2b4e70ec07
The module already binds run_in_threadpool (used by list_profiles_endpoint) and every sibling router uses the same starlette helper; the nine new loop.run_in_executor(None, _run) sites now go through that alias so the file has one offload idiom. Behaviour-identical (both hand the callable to a worker thread). Also sweeps the one endpoint the PR left synchronous: update_profile_model_endpoint's _write_profile_model reads and rewrites the profile's config.yaml on the event loop.