docker_layer_caching is here: https://circleci.com/docs/2.0/docker-layer-caching/#docker-layer-caching-in-remote-docker
We don't provide guarantees for how long a reusable engine will be around. However, they should be around as long as you pay for the feature, except when we might need to change the engine software (i.e. a critical Docker security issue). We have had users with out of disk space issues and had to purge months-old docker images.
There are a few situations when a job gets a reusable engine but old Docker layers aren't available. For example, if your plan lets you run up to 4 jobs in parallel, if you had previously only run 3 jobs in parallel and then ran 4 at once, the 4th job would get a reusable engine, but that engine wouldn't have state from previous jobs. Another way this could occur is that you've run jobs on engine 2, 3 and 4 but you've changed your dependency layers since they were last used.