Wie ich dem Wireshark Protokoll entnehme, gibt es überhaupt kein Handshake zwischen den Kommunikationspartnern. Bei 5 ms Abstand ist das für eine S7 schon einigermaßen schnell wie das verarbeitet werden muss. Hängt aber auch davon ab wie die Verarbeitung in der S7 programmiert wurde, ob da nur einmal je Zyklus gelesen wird, oder zumindest je Zyklus so lange bis der Puffer leer ist. Ich würde das einmal mit dem S7 Programmierer abstimmen, wie schnell er die Daten annehmen und verarbeiten kann, und ob es wirklich notwendig ist mit den 5 ms.
Vermutlich lädst du den Puffer in der S7 voll, und dann dauert es so lange bis die Daten vom Anwenderprogramm daraus entnommen wurden. Also eventuell die Zeit generell heruntersetzen, oder ein Handshake implementieren.