Obtención de ExitCode usando Start-Process y WaitForExit en lugar de -Wait

Estoy intentando ejecutar un programa desde PowerShell, esperar la salida, luego obtener acceso al ExitCode, pero no estoy teniendo mucha suerte. No quiero usar-Wait conStart-Process, ya que necesito un poco de procesamiento para continuar en segundo plano.

Aquí hay un script de prueba simplificado:

cd "C:\Windows"

# ExitCode is available when using -Wait...
Write-Host "Starting Notepad with -Wait - return code will be available"
$process = (Start-Process -FilePath "notepad.exe" -PassThru -Wait)
Write-Host "Process finished with return code: " $process.ExitCode

# ExitCode is not available when waiting separately
Write-Host "Starting Notepad without -Wait - return code will NOT be available"
$process = (Start-Process -FilePath "notepad.exe" -PassThru)
$process.WaitForExit()
Write-Host "Process exit code should be here: " $process.ExitCode

Ejecutar este script causaráBloc para ser iniciado Una vez que se cierre manualmente, se imprimirá el código de salida y comenzará de nuevo, sin usar-wait. No se proporciona ningún ExitCode cuando se sale:

Starting Notepad with -Wait - return code will be available
Process finished with return code:  0
Starting Notepad without -Wait - return code will NOT be available
Process exit code should be here:

Necesito poder realizar un procesamiento adicional entre el inicio del programa y la espera de que se cierre, por lo que no puedo usar-Wait. ¿Cómo puedo hacer esto y seguir teniendo acceso a la propiedad .ExitCode desde este proceso?