U2chThread.pas (Open Janeでいうと)

procedure TThreadItem.OnSynchroNotifyProc;
中略
if not (asyncObj.responseCode in [200, 206]) then
begin
 exit;
end;
Inc(asyncObj.pumpCount);
lastLF := 0;

asyncObj.synchro.Wait;
↑ ここで止まってた (WaintForSingleObject)
datを受信しに行った最中に同期が崩れた模様。

なんか勉強になった。