I guess if I gave myself the restrictions you've laid out, that I wouldn't necessarily do, I would have a check at the beginning of the request - if it was the google bot then give it back a 503 or something else. Then you can use this function based on other parameters, for example what time of day it is being used or maybe open up for parts of things you want indexed at times as others have suggested.