TC>>3. Вы учитываете, что операция чтения может быть выполнена синхронно?
MC>В этом случае все равно уведомление будет.
Это понятно, но может быть какая то логическая ошибка, типа
status = WSARecv
if ( status == STATUS_PENDING )
{
GetQueueCompletionStatus
}