FileSystemWatcher para ejecutar funciones .NET

Estoy creando una solución temporal rápida, lo siento si esto está sucio, pero-

Objetivo

Me gustaría usar Powershells Register-Event cmd para esperar un archivo caído en una carpeta, luego llamar a una función que analiza el archivo y lo hace sobresalir. No necesito ayuda con el aspecto de la codificación, solo el concepto. Todavía es un poco misterioso para mí a partir de dónde se está ejecutando este Evento y con qué recursos tiene que trabajar.

Cosas que he probado

Un archivo .ps1 con eventos registrados en la parte inferior, que llama a una función en la parte superior, llamado por un archivo por lotes.
Comportamiento: Se detiene en esta línea:

$sr = new-object System.IO.StreamReader($copyPath)

Esta es mi primera invocación de .NET, por lo que asumí que se trata de un problema con .NET.

Dos archivos .ps1, FileWatcher y Parser, funcionan muy bien cuando se ejecutan por separado, llamados por un archivo por lotes.
Comportamiento: FileWatcher genera "Esta línea", pero no puede generar ninguna línea en el analizador, y nunca llega a esa línea.

Register-ObjectEvent $fsw Changed -SourceIdentifier FileChange -Action {
  Write-Host "This Line"
  .\src\Parser.ps1
  Write-host "That Line"
}

Incluso me desesperé tanto como para ir a dos archivos ps1 y dos archivos por lotes. Digamos que no funcionó.

Comando de archivo por lotes genérico estoy usando:

powershell.exe -noexit C:\scripts\src\FileWatcher.ps1

Preguntas

¿Por qué ciertos comandos se ejecutan bien cuando se los llama desde un evento registrado, y otros comandos como .NET no funcionan?

¿Es lo que estoy tratando de lograr incluso posible?

¿Tienes una forma mejor de lograr mi objetivo? (Solo scripting, recuerde que esto es un hotfix).

Respuestas a la pregunta(1)

Su respuesta a la pregunta