Add some logging to AsyncTasks.TaskCancel2
To help investigate #210
Allow TaskSource async methods to persist, so they can cancel nicely
Use framework methods to find async state machines / tasks
A bit more protected against changes
Bump up max async task cancellation count