AFAIK, and according to the documentation of `cache_set()`, the expiration time is the minimum caching period, not the maximum, so I implemented a solution similar to what `views_plugin_cache.inc` do.