Well, here's what I do (explained somewhere else).
I set all my cache timeouts to 20 minutes. Then in sidebar.php I manually check for 10 minutes to have passed. If it has, then it sets $LastCacheTime to 0 (which forces a rebuild of the cache). At the end of the script (before the UPDATE), if the LastCacheTime is NOT 0 - then I set the Ca_TimeStamp to LastCacheTime. These few lines have the effect of forcing Ca_TimeStamp to only update when the 10 minute timeout has been passed. As, for the PALS, they wont update unless the 10 minute timeout was tripped (by being set to 0) or if the 20 minutes has passed.