If I understand this report correctly, you are pointing to the time taken from when the instance is ready to when the servlet is ready. With App Engine, the loading of code/runtime is separate from the loading of the instance when it comes to instance creation. One of the reasons for this choice is to better handle traffic spikes. When runtime loading is included in instance creation, it may take longer for the instance to report as ready to receive new requests. During that time, additional instances may be spun up. This of course, depends on how long it takes to load the runtime and your application's servlets.
To reduce this, have you considered the
<load-on-startup> property for the Java standard runtime servlets? This will instruct App Engine to load said servlet when the instance is warmed up. This seems like an appropriate way to address the issue you've presented here.
Alternatively, you could also schedule a cron task to periodically send requests to a specific endpoint. While this won't ensure that every instance loads its servlets, it will ensure that at least one instance loads the appropriate servlet to handle the request.
Lastly, if you're really looking to micro-optimize this, keeping in mind the dictum that
premature optimization is the root of all evil, you might consider using a runtime with faster load times like Go. In general, coping your application's binary and running it tends to take less time than loading the JVM, all your classes and then your servlets. While the slides may be a little dated,
High Performance Apps with Go on App Engine is still relevant today and shows some of the performance benefits of using Go.