f6f550fdcb
A build: project whose image was already cached landed in CREATED without its containers being started: build_stream runs `docker compose build`, and on a cache hit DSM's implicit `up` does not fire, leaving the project stuck (start_project -> DSM 2104, redeploy_project -> "unexpected status CREATED"). - create_project / redeploy_project: after build_stream, read status and, if not RUNNING, issue SYNO.Docker.Project/start (= docker compose up) via new _ensure_project_up helper, then re-read. Best-effort: a rejected start is surfaced as a clear "containers are not running" hint, not a silent stick. - redeploy_project: accept CREATED as an input status and recover it. - start_project: support CREATED/STOPPED; graceful 2104 hint with the cold-rebuild workaround; no-op message when already RUNNING. Confirmed against live DSM: start brings STOPPED -> RUNNING; the cold-build path was already RUNNING and is unchanged. 329 tests pass; ruff clean.