Если таск асинхронный, ты должен сообщить галпу, когда он завершится. Для этого ты можешь:
- использовать коллбэк, который падает первым аргументом в таск
- вернуть поток из таска (галп будет ждать когда он закроется)
- вернуть промис из таска (Gulp4-only)
В твоем случае, почти во всех тасках ты возвращаешь результат выполнения gulp.src - а это и есть поток, а там где ты не делаешь return gulp.src (в подтасках "fonts" и "image:build") - там галп не может раздуплить, закончен таск или нет, отсюда ошибка.