A simple locked cache (that should be thread-safe) & uses an AsyncLock.