Qualquer transação aberta ativa fixará o log, impedindo o truncamento e, eventualmente, causando crescimento. Se você iniciar uma transação, escreva no log e espere eternamente na esperança de que uma mensagem eventualmente acorde, você acabou de fixar o log e fazer com que ele cresça.
Ultimamente, comecei a recomendar que as pessoas evitassem o WAITFOR no procedimento ativado, junto com o loop. Apenas emita um RECIEVe e pronto, deixe o mecanismo de ativação girar para você (ele faz) e não espere, simplesmente RECEIVE.
O sabor WAITFOR de RECEIVE cria um ponto de salvamento internamente. Isso gera log (pelo menos 3 registros de log) e, de fato, fixa o log no local enquanto aguarda. Ter um tempo limite longo do WAITFOR (ou pior, um tempo infinito) seria uma prática muito ruim.
WAITFOR (...) TIMEOUT 3600000
resolver o problema? Por exemplo, liberar a cada hora.