If you don't play it straight, there is probably a way to use a hash function or 'salt' to defeat rainbow tables; I'll have to think about it.
You don't ask them for (2^(2^t)) (mod n), you give them H((2^(2^t)) (mod n)) and ask them for t.
You're absolutely right. Instead of having Alice give Bob R and ask for t, you want her to give him H(R) and ask for t. When Bob doesn't have R he can't start successively squaring R - therefore he has no successor function for R, thus no way to construct a rainbow table.
You could still extract some parallelism by first computing T sequentially and then saving way-points along the way, though that requires you to store elements of n which are large compared to the hashes... but probably reasonable enough for extracting some parallelism. Hm.
I see it. Say you've got a nice GPU that lets you do a thousand operations in parallel. So instead of storing the _whole_ table you store a thousand widely separated starting points for your search. Then instead of searching a million-element table when you get a request, you have a thousand threads that each work on building a thousand-element table until one of them finds the answer. It uses a thousand times the processing power of a straight rainbow-table implementation, but it can be just as fast as a thousand-element rainbow table.
But here is a good way to defeat that.
We're dealing with arbitrary 't', right? What if Alice starts out by saying that she will never ask for any 't' except a 't' that's evenly divisible by some factor X? You can skip storing the result of all but one out of every X squaring operations. The result is that constructing the million-element table now costs a factor of 'X' more nonparallelizable operations. Say X is 4300. Now Bob can save a thousand starting points in his million-element table, but each thread is going to have to do 4300 squarings to get the 'next' element in its thousand-element subtable. You can favor lookups over table construction by essentially any work factor.
Of course this makes it compute-expensive to initiate a connection as well as storage-expensive to keep one going. But if the connections last longer than an hour, that probably isn't a problem.