Tunnel error handling improved — now shows the actual reason instead of just "Public tunnel unavailable":
- "cloudflared package not found" → module not resolved
- "Failed to download tunnel binary: ..." → binary download failed
- "cloudflared tunnel timed out (30s)" → network issue or firewall blocking Cloudflare
- "Cloudflare tunnel error: ..." → actual error from cloudflared
- "cloudflared exited (code X) before providing a URL" → binary crashed