Added CancellationTokenSource/Registration to match .NET 4.0 behavior more closely