Fix asynchronous cancellation of FBTask
Fix asynchronous cancellation of FBTask

Summary:
The error message wasn't obeyed and there's a race condition in `[FBTask.completed cancel]` that means we won't wait for the process to exit.

The reason for this is that `chain` will still resolve the future in cancellation but the cancel responders aren't propogated properly.

Reviewed By: c-ryan747

Differential Revision: D15600697

fbshipit-source-id: 3130ef99c09d495548cafda2ac7aa17459ce6a65

facebook/FBSimulatorControl,facebook/FBSimulatorControl,facebook/FBSimulatorControl,facebook/FBSimulatorControl,facebook/FBSimulatorControl