Em primeiro lugar, é importante reconhecer que os registros DNS armazenados em cache no cliente ou no seu resolvedor de DNS estão fora de seu controle (note que estou me referindo aos registros DNS e não ao seu servidor de nomes autoritativo). Portanto, cabe ao cliente e ao seu resolvedor de DNS honrar seu TTL.
No caso de um novo visitante que nunca visitou seu site antes e cujo resolvedor de DNS não armazenou seus registros em cache (ou visitou há muito tempo que o cache expirou), ele verá os novos registros imediatamente.
Shouldn't this be under 60 seconds?
Deveria, mas apenas se o seu cliente honrar o TTL. Alguns clientes têm TTLs mínimos e algumas redes também têm um resolvedor de DNS que pode estar armazenando resultados em cache.
Is it possible to reduce this time?
Você tem que lembrar que a maioria de seus visitantes (assumindo que este é um site público) não estará lá carregando seu site em intervalos de poucos segundos como você fez. A maioria de seus visitantes provavelmente não terá visitado o site recentemente e seu resolvedor de DNS pode não ter os registros em seu cache. A maioria dos resolvedores de DNS deve respeitar seu TTL, mas você não pode garantir isso.
What is a safe time to delete the old stack?
É melhor julgar isso pelo tráfego que ainda está sendo atendido pela pilha antiga em vez de pelo DNS TTL. Se você estiver usando o ELB, poderá visualizar quantas solicitações por segundo estão sendo atendidas pelo antigo ELB no cloudwatch. Espere até que isso caia abaixo de um nível aceitável e exclua-o.
Para ver a nova pilha imediatamente após o switch, eu recomendo apenas limpar manualmente o cache DNS local. Deixar o seu próprio cliente para expirar os registros naturalmente para ver quanto tempo leva provavelmente não será indicativo de quanto tempo leva para outros clientes.
Editar, observei que o DNS público do Google tem uma ferramenta para permitir que você esvazie o cache:
Isso pode acelerar as coisas, já que uma proporção significativa de clientes provavelmente usará isso.