The current VerifyEmail.tsx catch block is generic — it shows a toast and redirects to /signin regardless of the error type or user state. This creates a poor experience in several scenarios.
- User clicks a verification link after already being verified — e.g., they verified via one link but later click an older one from their inbox. Instead of showing a confusing error, the system detects they're already verified and sends them home.