(
3) Собственно говоря, никак - если соединение не закрыто - то идёт передача данных, но в свете keep/alive соединения вообще никто не закрывает.
Конечно, если сервер выкидывает заголовок с длинной страницы, а потом только её часть - то браузер должен ждать таймаута и сообщать об ошибке - если размера нет, то сейчас браузеры предполагают, что нужно ждать данных от сервера причём сколько угодно долго.
Как бы, можно сказать, что есть время, за которое страница должна загрузиться, а в её хвосте указать какой-то объект, который можно будет увидеть - если время прошло, а объекта нет, то шлём F5.