timeouts can be float throughout the Python library.

To be consistent with the libs and to allow for e.g. 500ms, we need to parse as float.