O estado last_ack (se eu me lembro corretamente da minha pilha TCP) é o estado em que você recebeu sua mensagem FIN para fechar a conexão do seu vizinho, mas ainda precisa liberar e encerrar sua conexão. Você envia a FIN final e aguarda um ACK.
Normalmente pendurado em last_ack significa que seu aplicativo mantém um soquete aberto mesmo quando o outro terminal terminou de enviar dados. Isso pode acontecer por vários motivos. Pode haver um firewall ou outro balanceador de carga que perca o último ACK do cliente e deixe você preso no estado last_ack. Se as conexões não forem expiradas após alguns minutos (10 ou mais), você provavelmente terá um erro.
Veja o diagrama de estado no link