Ad 1: Es kommt auf die Implementierung von SendeDaten() an. Wird dort ein Workerthread pro Aufruf mit dem eigentlichen Senden beauftragt, wird nicht zwangsweise bis zum tatsächlichen Abschluss des Sendens gewartet. (Synchron versus Asynchron, um mal Schlagworte zu liefern)
Ad 2: Trifft ein Timer-Event (bzw. irgendein Event) ein, während der Verarbeiter (dein Formular z.B.) beschäftigt ist, kommt er in eine Warteschlange. Die nimmt
imho aber auch nur begrenzt Messages auf (Message-Queue heisst das Teil), wonach die Events verworfen werden. Deine Timer-Prozedur wird nicht mehrfach parallel aufgerufen, aber deine 20ms sind in Gefahr (welche ohnehin schon nah der Untergrenze der Schnelligkeit von Timern sind, wodurch die ohnehin schon recht fragwürdig sind).
Fazit: Ohne mehr Infos zu SendeDaten() kann man nicht mehr sagen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)