use extended bluebird Promise that has #setTaskId, #getTaskId
[task] promise returned by calling task will have `taskId`