Replace asyncio.ensure_future() with a daemon thread for GraphRAG
initialization. The Neo4j driver and NetworkX calls are synchronous
and were starving Hypercorn of CPU time on the shared event loop.
A separate thread with its own event loop isolates the blocking work
so the server accepts connections immediately after Phase 1 completes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>