One fact that has not been mentioned yet is that gulp plugins (i.e. simple object streams) are very easy to unit test. (With grunt there still is not an easy way to unit test plugins.) Also by way of their nature as streams they tend to be small and composable, again making them easier to maintain.
Also, there is already an effort going on towards finding a generic API for node task runners at https://github.com/node-task/spec/wiki