The reaper runs every 30 seconds by default, which means any max_lifetime and idle_timeout will be ignored (well, enforced too late really) if set to less than 30 seconds.
A good automatic default could be to automatically set reaper_rate to min(max_lifetime, idle_timeout, 30).