Acontece que isso foi devido a uma configuração incorreta no ELB. Ele tinha uma URL de verificação de integridade incorreta que retornava 200, independentemente do status de RoR. Como tal, isso estava dizendo ao ELB que esta instância do EB estava pronta e foi colocada em serviço antes de realmente estar pronta, e portanto causando 502s.
Definir a URL de verificação de integridade do ELB para uma URL correta que retornou algo diferente de 200 instâncias de EB impedidas de serem colocadas em serviço no ELB e resolveu esse problema.