0dd7f0b802
Harvested from #2415 with thanks to @axobase001. Keeps the denser mobile QR renderer and replaces the fixed binding-warning sleep with health polling plus an explicit timeout failure path, so slow starts fail with the useful cause instead of drifting into misleading assertions. Follow-up to #2403.