Existe uma maneira de eu limitar o tempo de execução de uma query, para evitar que ela consuma todos os recursos do sistema operacional?
Sim, o SQL Server possui uma opção chamada de Query Governor que seta um limite máximo de tempo que uma query pode ficar executando. Por padrão (valor 0) toda query pode rodar independente de quanto tempo ela demora. Configurando um valor com a opção SET QUERY_GOVERNOR_COST_LIMIT você irá forçar que , durante a sua conexão, qualquer query que demorar mais de segundos para executar não será permitida.