Esta linha é da configuração atual do ASA?
timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02
Se sim, então essa é a sua resposta, é o firewall. O TCP não implementa nenhum mecanismo para determinar se uma conexão ainda está ativa ou não (de que estou ciente), portanto, o cliente e o servidor devem, em teoria, estar perfeitamente satisfeitos em manter a sessão mesmo se não houver fluxo de dados. Qualquer um pode implementar keepalives TCP, mas isso teria o efeito oposto do que você está vendo. Um TCP keepalive de qualquer um dos lados faria com que o firewall visse a conexão como ativa.
A terminação normal de uma conexão TCP seria para o host que iniciou a conexão enviar um FIN para a outra extremidade, resultando em uma conexão semifechada da perspectiva do lado de inicialização e (salvo qualquer problema) a conexão TCP prossiga através do processo de fechamento. Este é um processo elegante e não causará um TCP RST. Se um lado da conexão falhar, isso resultará em uma conexão semiaberta, mas, novamente, nenhum dos lados pode detectar isso (que eu saiba) para que nenhum RST seja emitido, exceto pelo firewall. Nenhum dos lados deve enviar um RST devido a uma longa conexão ociosa, a menos que o software em ambos os lados (software cliente telnet ou software servidor telnet) esteja programado para emitir um RST ou algum tipo de comando terminate para conexões ociosas longas.
Como teste (e para poder capturar na interface externa do firewall), considere estabelecer uma sessão de telnet com outro servidor (se disponível) que não transite a conexão VPN e deixe-a inativa. Você provavelmente também poderia testar estabelecendo uma conexão FTP com um servidor externo que não transitasse a conexão VPN e a deixasse inativa. Se você vir o mesmo comportamento do RST, então acho que é seguro apostar que o firewall é a causa.