Видимо в некоторых случаях сервер может отдавать вместе с HEAD еще и BODY.
Либо же это именно проблема guzzle.
Но в моему случае при запросе HEAD идет скачка всего файла целиком
Есть костыль как это победить, если у кого будет такая же ситуация
$client = new \GuzzleHttp\Client();
$response = $client->head($url, [
'stream' => true,
'read_timeout' => 1,
]);
$this->assertEquals(200, $response->getStatusCode());
Таким образом будет ограничение по времени на скачку не более 1с, дальше будет сбрасываться соединение.