Ответа о доставки прикладное ПО не получает, стек сразу рапортирует что все ок, ТСР не гарантирует доставку.
Данные попадают в "окно" и там лежать пока стек не соизволит отправить. Команда push не поможет, она другим занята.
Если в момент передачи выдернуть шнур то вы потеряете забуфиризированные данные, даже потеряете если окно выставите в 0, и не узнаете что доставлено а что потеряно, только обратная связь помогает выяснить ситуацию.

Примечание, под стеком я имею ввиду реализацию протокола.

Алгоритм Нагля наоборот, собирает мелкие данные и отправляет их минимальным ТСР пакетом, что бы не слать по одному байту:
## Код:
```
if there is new data to send
  if the window size >= MSS and available data is >= MSS
    send complete MSS segment now
  else
    if there is unconfirmed data still in the pipe
      enqueue data in the buffer until an acknowledge is received
    else
      send data immediately
    end if
  end if
end if
```


Вот ваш пункт 2 и демонстрирует работу Алгоритма Нагля.

http://www.stuartcheshire.org/papers/NagleDelayedAck/


Под нагрузкой увеличивается число коллизий/задержек и большие пакеты приходится снова отсылать, что в свою очередь увеличивает нагрузку
Разбиение на мелкие пакеты позволяет минимизировать повторные отсылки но в свою очередь увеличиваются затраты на опроси. Тут главное найти баланс.