Modify async code to improve task/scheduler default behavior.

Pass TaskCreationOptions.DenyChildAttach to tasks by default.
Ensure TaskScheduler.Default is evaluated when the task is created (instead of in constructor)