Почему не работает browserSync?
Автору скорее всего уже не актуально. Но я только что потратил на такую же проблему два часа. Как оказалось, в html файле обязательно должен быть <body>
функция передаваемая в watch должна вызвать коллбэк или вернуть Promise.resolve(), browserSync.reload ничего такого не делает.
попробуйfunction reload(cb) {
    browserSync.reload();
    cb()
}

function watch() {
    gulp.watch('./index.html', reload)
}