Hmm, we should start a discussion on this, then, cause I'm sure I wanted to use 'max'.
The goal of this was to use max(computed_value, 1.0) to avoid sleeping less than 1 second, which is totally useless, and can introduce some bad infinite loops.
But @kwirk reminds me that the getSleepTime() exists here, and that it should either be used or removed. To me, the sleepTime should be a minimum value to sleep: the user (or admin) chose a value so that he is sure that all threads will pause for at least that amount of time. This is the case where 'max' is needed.

In your comment, you raise the following issue: if the sleepTime is defined higher than banTime, then we will definitely unban some hosts later than expected. You're totally right.

In my (humble) opinion, we should ask us the following questions:
* Do we consider users stupid enough to set a sleepTime higher than banTime?
* Do we need to enforce that sleepTime <= banTime?
* Do we need to keep set/getSleepTime within the context of this patch?

As today, setSleep time isn't really used I guess. But I'm a simple user, I don't know how everyone is using fail2ban.