Current cache reads happen before tile generation. If using a higher latency cache setup it can add hundreds of milliseconds. With a typical remote such a cache would be still faster upon a hit but upon a miss adds enough latency to make the map feel less snappy. We should consider support for a non-blocking cache operating mode that causes cache read and tile generation to operate in parallel goroutines, with whichever returns first causing the other to cancel. This is unwanted behaviour in many situations so it needs to be configurable, both overall and per-layer.