Конечно же есть способ отследить, что является причиной падения. Постараюсь описать топологию действий:
Нужно определить, чем отличается "Рабочее" состояние КС клиента, от "Висящего". Для этого можно воспользоваться бесплатной утилитой AnVir. Запускаете её, потом запускаете КС. Выделяете процесс hl.exe и переходите в закладку "Производительность" (наиболее важные элементы я обвел красным):
после этого, можно смело начинать играть и ловить момент "Зависания". Как КС повиснет, перейдите в AnVir и посмотрите на график и проанализируйте ситуацию. Вполне возможно, кс начнет кушать процессор или оперативку. В любом случае, на графике это будет видно.
На основе полученных данных, можно производить дальнейший анализ ситуации. Если кс в момент зависания полезла на жесткий диск (это будет видно на графике), тогда можно воспользоваться программой
Process Monitor которая может отследить абсолютно все действия на компьютере (обращения программ к файлам, реестру, сети, и.т.д.). Можно проанализировать только сам процесс hl.exe или закрыть весь лишний софт и проанализировать систему полностью, отловить момент зависания и разобрать его по "Косточкам".
В любом случае, надо уметь анализировать и знать, как работает система.