Maybe a work-around would be to set the cookie for a comparatively long time, but also set a session value which is the actual desired expiration timestamp, maybe using the cookie name as the $_SESSION array key. Then on each page request, if the cookie is set, see if the corresponding $_SESSION value is either not set or has expired, and if so, unset that specific $_COOKIE value.
Yeah, it's a kludge, but might keep you going pending someone coming up with a "real" solution.
"Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
~ Terry Pratchett in Nation