umpnpmgr calls NtGetPlugPlayEvent to wait for events. That function waits in kernel mode so doesn't allow the thread to terminate.