GetUserName gibt nur den Namen des Benuterkontexts zurück, unter dem die Anwendung ausgeführt wird,
also nicht den aktiven Kontext wo der/ein Benutzer angemeldet ist.
und bei mir scheinen die Anwendungen wärend der Zeit problemlos weiterzulaufen (jedenfalls hörte z.B. der MediaPlayer nicht auf zu spielen.)
was das Erkennen angeht:
schau mal nach nach Themen wie
impersonate, womit sozusagen der Benuterkontext umgeschaltet werden kann, da gibt's bestimmt auch etwas zum Nachsehn was sonst noch aktiv ist ...