Eu tive exatamente o mesmo problema que realmente acho que é um bug com o implementador do Beanstalk.
Eu estava usando uma política de implantação "Rolling" com 2 instâncias e tamanho de lote 1, o que deve resultar em tempo de inatividade zero na teoria. No entanto, na realidade, durante uma implantação ainda há um período de cerca de 10 - 15 segundos, onde o ELB responde com 504.
Dê uma olhada nas configurações de "Atualização e Implantação" na configuração do seu beanstalk. Descobri que mudar para "Rolando com lote adicional" e usar um tamanho de lote de 100% funciona bem e oferece tempo de inatividade zero durante uma atualização.
Atualização de outubro de 2018 - Não sei há quanto tempo está funcionando, mas as atualizações de rolagem do Elastic Beanstalk agora funcionam corretamente novamente sem tempo de inatividade para mim.