If we use this method in a specific aspx file (function) to emulate "DOMAIN\John Smith" for a specific task - can we say for certainty that only that single aspx request impersonates John, or does the whole application pool run as John Smith until undoImpersonation() is called at the completion of said function?

Public Sub Page_Load(ByVal s As Object, ByVal e As EventArgs)
If impersonateValidUser("username", "domain", "password") Then
'Insert your code that runs under the security context of a specific user here.
undoImpersonation()
Else
'Your impersonation failed. Therefore, include a fail-safe mechanism here.
End If
End Sub

If RevertToSelf() Then
If LogonUserA(userName, domain, password, LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT, token) <> 0 Then
If DuplicateToken(token, 2, tokenDuplicate) <> 0 Then
tempWindowsIdentity = New WindowsIdentity(tokenDuplicate)
impersonationContext = tempWindowsIdentity.Impersonate()
If Not impersonationContext Is Nothing Then
impersonateValidUser = True
End If
End If
End If
End If
If Not tokenDuplicate.Equals(IntPtr.Zero) Then
CloseHandle(tokenDuplicate)
End If
If Not token.Equals(IntPtr.Zero) Then
CloseHandle(token)
End If
End Function

The impersonation is Thread specific, not for the whole application.
I modified your page_load to include a simple logic that demonstrate that fact.

Demonstration

The original user (app pool) and Impersonated user will both write in the debug console at different interval. Notice that the impersonated user is running from another thread and will output its username once per second while the app pool user (main thread) output remains on the main thread and output its name each 100 ms.

Public Sub Page_Load(ByVal s As Object, ByVal e As EventArgs)
Dim Task As New System.Threading.Tasks.Task(Sub()
If impersonateValidUser("Username", "Domain", "Password") Then
Dim Watch As New Diagnostics.Stopwatch()
Watch.Start()
While Watch.ElapsedMilliseconds < 10000
System.Threading.Thread.Sleep(1000)
Diagnostics.Debug.WriteLine(WindowsIdentity.GetCurrent.Name)
End While
'Insert your code that runs under the security context of a specific user here.
undoImpersonation()
Else
'Your impersonation failed. Therefore, include a fail-safe mechanism here.
End If
End Sub)
Task.Start()
While Not Task.IsCompleted
System.Threading.Thread.Sleep(100)
Diagnostics.Debug.WriteLine("--" & WindowsIdentity.GetCurrent.Name)
End While
End Sub