Update PR with code review feedback

Timeouts are initialized to a sentinel value to allow user to specify
None as the timeout value