It's milliseconds; always has been afaik. Timespan overloaded were added to the non-Document (k/v style) methods to make it easier on developers. To be honest, the bug is that Document.Expiry is a uint and not a Timespan! However, it would be a major breaking change to change the Type, so we've just been living with it until Sdk 3.0.
Perhaps the confusion here is the difference between timeout and expiry?: