When readStreamIntoSink completes synchronously (i.e. readMany() returns done:true without awaiting), $startDirectStream is never called, so the signal pointer remains dead. On Windows this triggers a pre-existing assertion failure in the stream-to-file path in pipeReadableStreamToBlob.
The assertion was removed in #28075 (for the non-Windows path), but the Windows stream-to-file pipe path has additional issues that need separate investigation.
Tests in test/regression/issue/13237.test.ts are currently skipped on Windows pending this fix.