Si tu aplicación consume servicios externos y solés tener timeouts consumiendo estos servicios, lo mejor que podés hacer es delegar esto a otro proceso (y no al que atiende el request de tu usuario).
Ej:
1) Tu usuario envía el request con todos los datos. Tu app toma esta info y levanta otro proceso (o pone un msg en una cola para que otro proceso lo tome) que se encarga de solicitar el CAE a la AFIP. Al usuario le devolvés un mensaje de "procesando..."
2) Tu otro proceso toma los datos y consulta a la AFIP por el CAE. Este proceso no te va a dar timeout (si el request se hace muy largo si, pero no le genera un error 500 a tu usuario). Cuando vuelve la info, guardás todos los datos en tu BD.
3) El browser puede consultar a otro endpoint si el CAE ya fue generado (se puede quedar esperando con un loop en JS)