Typically, a build involves installation of a bunch of dependencies before anything is done with the project you’re building, itself.
This often takes the most amount of time on the build machine - sometimes as much as 10x as long as the build itself (and even more if you have build errors…)
So, it would be nice for us users and maybe cheaper for you Travis people to allow caching of the VM/container state after the dependencies are installed. Say, it could be caching based on a .travis.yml explicit request for it, or any other mechanism. The cached machine state would only stay live for a short period of time, so as not to tax storage.