Task 3/6: lead_forward and lead_forward_htmx shared ~20 lines of identical DB logic. Extracted into _forward_lead() that returns an error string or None. Both routes now call the helper and differ only in response format (redirect vs HTMX partial). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>