Add task-based promise creation