Спасибо за вашу помощь @Maerlyn, мое решение мало чем отличается от вашего.
Я решил проблему, переопределяющую метод doRun в моих задачах следующим образом:
protected function doRun(sfCommandManager $commandManager, $options)
{
try
{
return parent::doRun($commandManager, $options);
}
catch (Exception $e)
{
$this->dispatcher->notifyUntil(new sfEvent($e, 'application.throw_exception'));
throw $e;
}
}
Это решает проблему.