A separação entre API e worker faz bastante sentido: tira o custo e a instabilidade do SMTP do caminho crítico e centraliza retry, credenciais e auditoria. O ponto que eu adicionaria é que fila assíncrona não elimina os problemas de entrega, só muda onde eles precisam ser tratados. É importante definir idempotência para evitar duplicidade em retry, política de backoff, limite de tentativas e o que acontece com mensagens permanentemente rejeitadas, além de expiração e observabilidade por tenant.
Na parte das chaves, o prefixo indexado resolve a localização do candidato, enquanto o Argon2id protege o segredo armazenado. Ainda assim, o prefixo vira metadado pesquisável: precisa ter entropia suficiente, não aparecer em logs e ser revogado sem ambiguidades. Para SMTP, AES-GCM também exige cuidado operacional com nonce único e rotação das chaves de cifragem; rotação sem um esquema claro de versionamento pode tornar credenciais antigas ilegíveis. Outro detalhe é o padrão de consistência: se a resposta da API confirma apenas o enfileiramento, isso precisa ficar explícito no contrato do cliente, já que não equivale à entrega.