Totalmente de acuerdo con lo de no abortar todo. Al final opté por una estrategia mixta: uso undetected-playwright con un perfil persistente (creado manualmente), bloqueo solo requests de tracking con un patrón, y después del challenge espero a que aparezca un elemento específico de la página (un div con id 'content'). Si no aparece en 10 segundos, recargo la página con un nuevo proxy. Llevo días sin cuelgues. El código resumido:
page.wait_for_selector('#content', timeout=10000).click()Gracias a todos por las ideas, me ayudaron a depurar el problema.