Есть подозрение, что проблема в строке: files: ['scss/*.scss','css/*.css']
Вотчер смотрит, что был изменен какой то файл *.css, который, как я подозреваю, как раз получается при билде scss и заново запускает билд.
У вас может получиться так, что какие то пакеты могут использовать разные версии одной и того же пакета. Причем версии могут быть между собой несовместимые (мажорные версии разные). А если один пакет вы обновили и он потащил за собой свежие зависимости, которые оказались несовместимы с другими модулям? Вы устанете резолвить версии модулей. Проще держать рядом node_modules.
grunt должен быть установлен локально в проект. grunt-cli должен быть установлен глобально, то есть с флагом -g. После этого не мешает перезапустить консоль.
Вам никто не покажет исходники коммерческого проекта.
Билд стилей для прода и девелопмента никак не отличается. У нас настроен watch, который при каждом сохранении любого файла из стиле запускает таск билда. При билде все *.scss / *.less файлы собираются в один (grunt-contrib-less или grunt-sass), а затем по полученному файлу проходится autoprefixer.
Как это использовать в CI уже зависит от того, что вы используете. Совсем недавно на одном проекте пришлось настраивать билд для TFS. Особых проблем не было. Для TeamCity есть мануалы.
Для чего вам нужен bower? Ради bower install bootstrap? В чем тут то сложность?