Понимание QTimer с помощью лямбды и рекурсивного вызова функций

У меня есть следующий код:

void class::Testfunc()
{
    QTimer* timer = new QTimer;
    QObject::connect(timer, &QTimer::timeout, [this](){
        emit Log("Time out...");
        TestFunc(serverAddress, requestsFolderPath);
       // deleteLater(); //*** why does this crash if used to replace the connect below?
    });
    connect(timer, &QTimer::timeout, timer, &QTimer::deleteLater);
    timer->setSingleShot(true);
    timer->start(1000);
}

Таймер одиночного выстрела создается с тайм-аутом, связанным с лямбда-функцией, которая регистрирует вход в лямбда-функцию каждую секунду (печатает текст в стандартный вывод) и снова вызывает функцию.

Это работает без проблем. Однако, если я удаляю вызов connect для deleteLater (ниже лямбда-функции), но включаю вызов deleteLater в лямбда-функции, функция завершается ошибкой. Он печатает один раз и вскоре после этого, вылетает при попытке удалить объект таймера.

В чем разница между двумя вызовами deleteLater в этом случае и почему размещение deleteLater в лямбда-функции вызывает здесь проблему, в то время как создание отдельного соединения работает, как и ожидалось, даже если оба вызывают deleteLater в ответ на сигнал тайм-аута таймера?