feat: unified observer display on health page
Add a health API endpoint that reports the local stream hostname for the UI. Refactor the health workspace observer state and rendering to group observer streams by host, unify the observer card naming, and fetch the local host on page load so the main observe panel can read from the shared observer map.
Also add route coverage for /app/health/api/info and fix the observer UI follow-up issues from review: describe/transcribe now reset to Idle when the primary stream exists but those processor fields have not arrived yet, and fully stale observer hosts now receive the stale card styling.