var cts = new CancellationTokenSource();
var ct = cts.Token;
var t = Task.Factory.StartNew(() => {
while (true) {
ct.ThrowIfCancellationRequested();
Console.WriteLine("working");
Thread.Sleep(1000);
}
}, cts.Token);

StartNewの2番目のCancellationTokenは何に使われてるのでしょうか?
無くてもキャンセルはされますし、
逆にThrowIfCancellationRequestedが無い場合はキャンセルされません。