Bom dia Pedro
A) A primeira dica seria verificar sua base de dados e realizar uma indexação dos índices.
Uma vez estava usando o MySQL indexei a base mas não deu jeito tive que fazer um DUMP e criar a base com outro nome.
No Postgresql pode usar o pgadminIII que esta na ferramenta a indexação.
Veja como está o espaço das bases de dados no seu servidor.
B) Eu rodo o meu cron.php duas vezes por dia. (Definição no servidor)
C) Espaço no diretório onde está instalado o moodle.
Abraços Silvia