Как архитектурно решать такую проблему (логирование в процессе ошибки)?
И бывает так, что http-запрос выбрасывает php-ошибку (не exception).
Начиная с PHP 7 ошибки тоже выбрасывают исключения, но не типа Exception, а типа Error. И вы их можете точно так же обрабатывать через try … catch.

Если нужно ловить нужно и ошибки, и исключения, то это можно сделать интерфейс Throwable, от которого наследуются Exception и Error.

Соответственно у вас будет что-то типа

try {
  $response = $http_client->get($request);
  $logger->debug([$request, $response]);
} catch (\Throwable $e) {
  $logger->debug([$request]);
}
https://www.php.net/manual/ru/function.set-error-h... 
https://www.php.net/manual/ru/function.restore-err..., 
оно?