I don't see a major difference from the point of view of the internal variables/fields compared with the other PR #3609.
Maybe a simpler approach is to introduce a new parameter to specify what is the type (unit) of the timeout, like `timeout_mode`, which if it is 0 (default) is going to consider the values in seconds and if set to 1, then it is going to consider the values in milliseconds and based on its value, the appropriate curl option is set.