100% test coverage
Make the --timeout option actually work

Also allow fractional timeouts because why not?
Test under PyPy