Also, I don't see a check that ensures that the soft timeout is smaller than the hard timeout passed via options.