Don't use "task.Result" directly (use the timeout from SE.Redis).
Use existing generationKey.
Only sync the generation if necessary.
Add test for concurrent session factories.
Add timings to performance tests.