Cancel CTS immediately if delay is zero. (dotnet/coreclr#18098)
The intended behaviour on specifying a delay of zero is that the CancellationTokenSource is cancelled immediately - before this change, it would depend on the scheduling of the timer callback which could lead to seeing a non-cancelled token. Now, it marks itself as cancelled immediately, without invoking any callbacks (as this method is called only from within the constructor of the object, before any callbacks could have been registered.
Commit migrated from https://github.com/dotnet/coreclr/commit/
dcdfeea0b85b09e0f066fdfd05f5fef289977ab9