Bei CHGTELNA und 28800 prüft also die AS/400 alle 28800 Sekunden, ob eine Sitzung noch aktiv ist.
Wenn du das in Ordnung findest, dann kannst du das ja so lassen.
Dies führt aber auch dazu, dass bei einer tatsächlichen Unterbrechung die AS/400 den Job erst nach 28800 (bzw. nach dem letzten Intervall) Sekunden trennt (DSCMSG) oder killt (ENDJOB).
Zur Erinnerung: 28800 Sekunden = 8 Stunden!
Da ist es dann kein Wunder dass das VPN nach 20 Minuten Leerlauf keine Aktivität feststellt.
Empfehlenswert ist her z.B. 60!
Die AS/400 schickt somit an jede Sitzung alle 60 Sekunden einen "Telnet"-Ping.
D.h., bei einer echten Trennung wird der Job nach spätestens 1 Minute geparkt (DEVRCYACN = *DSCMSG) und man kann sich bei gleicher Sitzung (also nicht QPADEV) auch wieder verbinden.
Wenn man allerdings eine schlechte Verbindung hat, kann dies zu häufiger Trennung führen.
Zusätzlich gibt es ja auch das TCP Keepalive bei CHGTCPA, Default 2 Minuten.
Wobei ich denke, dass dieser (laut Definition) von TELNET übersteuert wird.

Die Qualität der Verbindung muss man halt prüfen ob die KeepAlive's zu häufigerer Trennung führen obwohl keine Trennung vorliegt.
Das ist der Nachteil von "zustandslosen" Verbindungen wie eben TCP.