I want to start this off by apologizing if this has already been suggested; I didn't see this when I searched the forum, but I've been known to miss things.
The way that the upgrades "Lucky Day," "Serendipity," and "Persistent Memory" currently work is that when the game sets the time until a Golden Cookie spawns or the time left until research is completed, it checks to see if you have the upgrade(s) and splits that time accordingly.
My idea is for these upgrades to apply retroactively to that time. In other words, when you purchase said "Persistent Memory," the amount of time left to research drops from 28 minutes to 2.8 minutes or, perhaps slightly more balanced, the game just throws out however time there was left and recalculates it. The reasoning behind this is that it can get annoying to buy the research center 5 minutes into a reset (or 30 seconds into it in the beta) and "Persistent Memory" half-a-second later but still need to wait 30 minutes to get the first unlock. Also, I have other thing that could go in that permanent ability slot.
From a programming standpoint, it should only take a few lines of code for each of the upgrades, applying an "onBuy" script that either divides the remaining time accordingly or simply calls for the spawn/research timing script and re-running it. The only concern that I have code-wise–-besides not trying to tell Orteil what he should or shouldn't be coding--is whether this would cause duplicate event (i.e. two research clocks going simultaneously) or actually overwrite the event as it should.
Also, on a somewhat related note, there should be some sort of filter as to what upgrades can go in the Permanent upgrade slots, perhaps with a prestige upgrade that unlocks some of those limitations? All I know is that you shouldn't be able to reset and have the same number of buildings that you had prior in 5-6 minutes.
EDIT: I accidentally posted it before I finished writing everything.