Fix 404 interception and SSR error overlay breakage
Two bugs:
1. The error shell intercepted ALL App Router error responses including
404s, preventing custom not-found pages from rendering. Fix: only
serve the shell when err !== null (actual error, not status-based).
2. The shell reused __next_error__ as HTML id, conflicting with
app-render.tsx's SSR error rendering which uses the same id for
CSR fallback. Fix: use __next_dev_error_shell__ as a distinct marker.
Co-Authored-By: Claude <noreply@anthropic.com>