refactor(convey): lazy-load web stack in create_app app-factory master
convey/__init__.py eagerly imported the whole web layer at package-import time, so importing any convey submodule (even bare `convey.state`) cost ~2.3s / ~160MB cold and pulled in solstone.apps + provider SDKs (google.genai/openai/anthropic) — paid by every CLI, maint task, importer, and test that only touches convey.state. This was the root cause of the settings seed-nav CI flake (req_rm4cjub7). Convert to the standard Flask application-factory pattern: module top is now stdlib + a TYPE_CHECKING flask import for the two Flask annotations; every heavy import moves function-local into create_app() and the helpers. A PEP 562 module __getattr__ resolves `emit` lazily so the 5 existing `from solstone.convey import emit` consumers keep working without dragging bridge/callosum into a bare convey.state import. Zero production behavior change beyond import timing: blueprint set, registration order (root→services_scout→config→chat→system→ledger→profile→ profiles→health→voice→push→registry), runtime start order (voice→push→chat→ link), and the migration helpers are byte-for-byte identical. Fix the two test consumers that relied on __init__ binding package attributes (test_system_status.py: convey.system; certless_helpers.py: patch convey.chat.start_chat_runtime on its source module). Add tests/test_convey_lazy_imports.py: subprocess import-firewall asserting bare convey.state / convey.config pull in none of solstone.apps, convey.provider_readiness, or the provider SDKs. Measured: `import solstone.convey.state` 2.33s -> 0.02s, with solstone.apps and google.genai no longer in sys.modules. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>