DriveMapAdd("I:", \\1.2.3.4\LaufwerkShare, 0,"Login", "Passwort")
Das gehört vor die Schleife, denn in der Schleife möchtest du ja nur die Anbindung abwarten. Momentan versuchst du alle 5 ms wieder das Laufwerk zu mappen.
Übrigens ist das Sleep von 5 ms zu niedrig, real wirst du kaum unter 8 ms kommen, egal was du reinschreibst, und so ein hohes Polling ist wenig sinnvoll. Nimm 1/10 s - also 100 ms.
Weiterhin würde ich einen Zwangsaustritt aus der Warteschleife ermöglichen, falls die Verbindung sich nicht erstellen lässt. Z.B. einen Zähler mit einbauen und nach 10 s ( = 100 Durchläufe ) wird mit Fehlermeldung abgebrochen. Wenn du das nicht einbaust, kannst du in einer Endlosschleife gefangen bleiben.