According to the wiki (https://wiki.jenkins.io/display/JENKINS/Google+Compute+Engine+Plugin) the worker VM will have the "Startup Script" commands run on it before the worker is made available to jobs
In practice it seems the "Startup Script" commands are still running on the VM when a job starts running on it.
I verified this by having some of the in the "Startup Script" section echo timestamps and logging to a file. The file was still being updated for a couple of minutes after the job started running on the VM.
In my case the "Startup script" is seeding the worker with some caches and I would need for the cache setup to be done before the worker is made available to Jobs.