[lldb][Windows] Don't stack a new ReadFile on a timed-out one (#227759)

On Windows, `ConnectionGenericFile::Read` cleared `m_read_pending` when
a read was interrupted or timed out, even though its overlapped
`ReadFile` was still in flight.
The next Read then started a second ReadFile on the same OVERLAPPED and
buffer. When data finally arrived, both reads completed into one buffer
and the first part was lost. This made SwiftREPL tests like
`ExclusivityREPL` drop the first line of a program's output.

This patch makes it so an interrupted or timed-out read stays pending,
and the next Read waits on it. If it has already completed, Read
collects its result instead of blocking on an event that may have been
reset. Disconnect clears the pending state after `CancelIoEx`.

On a Windows PC with artificial 100% CPU usage, this reduced the failure
rate from 8/160 runs down to 0/160 runs.

GitOrigin-RevId: 97beb893a52e1863d80bcb01c562316fbfce36c1
1 file changed