Der Sinn eines Cronjobs ist ja unter anderem die unterschiedliche php.ini (andere Arbeitsspeicher-Einstellungen, unbegrenzte Laufzeit, etc). Wenn du ihn über einen HTTP-Request startest, wird er nach einem HTTP-Request-Timeout gekillt.