We discovered that the error only occurred when a previous test ran that used Timecop
to travel forward in time by 1 day. As it turns out, Google tokens only last for 3600 seconds, so travelling an hour ahead invalidated the original token. Refreshing was then made impossible.
Moral of the story: don't forget to Timecop.return
after travelling in time.