Using PortMon, I immediately saw the error: I was trying to close the handle to the com port without first cancelling a WaitCommEvent(). The file handle to the com port would only be closed when PowerSDR exited.
The correction to the source code was pretty easy:
In SerialStream.cs line 1383, function FreeHandle needs to be changed to:
protected internal override void FreeHandle(IntPtr handle)
//Important! Must cancel all events before closing file!!!
//Now we can close the file handle
Calling SetCommMask() with a mask of 0 cancells the current WaitCommEvent() allowing the com port to be closed and correcting the problem.