MongoURI::connect parses the value of the argument, then passes it to ConnectionString::connect, which hands it off to DBClientConnection::setSoTimeout which takes seconds.
Since this is clearly too easy to get wrong, I think the fix should be to switch to using durations. for all of the above.
However the alternative is to divide by 1000 right after parsing because ConnectionString::connect is also called (correctly?) with a value in seconds.