Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Um das ohne Dienst zu machen, kannst Du den Thread auch einfach schlafen legen. Das Event was aufgerufen wird, müsste eigentlich in einem neuen Thread laufen. Fehlt dann noch etwas Eleganz, dass nichts blockiert wird. Zum Thema Dienste gibt es in der MSDN aber auch Tutorials, das ist kein Hexenwerk....
Da ich gerade Langeweile habe, schreib ich auch mal
Vermutlich läuft dein Code in eine Exception. Wenn du einen Download startest, wird die Datei bereits angelegt, aber noch geschrieben. Dein FileSystemWatcher feuert aber hier bereits ein Event (Datei angelegt). Hier versuchst du dann sofort die Datei zu kopieren, was vermutlich die Exception wirft, da die Datei, während sie geöffnet ist, nicht verschoben werden kann (Der Download läuft ja noch).
D.h. du müsstest erstmal prüfen, ob der Download bereits abgeschlossen ist, bzw. die Datei vom Browser geschlossen wurde, und erst dann kannst du diese verschieben.
Normalerweise sollte der Debugger dir aber diese Exception auch anzeigen (falls du einen benutzt), startest du das Programm dagegen direkt ohne einen Debugger, wird es sich vermutlich an der Stelle einfach "schließen" (Abstürzen), da die Exception nicht gefangen wird.