I have also run into this oddity of the cookie system. I don't know why it is so, but I can think of a way for you to get around it. Set the 10-second cookie with:
$time = time();
setcookie('foo', 'bar', $time+3600);
setcookie('expire_foo', $time+10, $time+3600);
...then put this somewhere to check if it's been 10 seconds yet and expire it if so:
if (isset($_COOKIE['expire_foo']) && $_COOKIE['expire_foo'] <= time()) {
setcookie('foo', false);
setcookie('expire_foo', false);
}