createSession could cache a session with no user when the post-write
user lookup raced replica lag, and findSession/findSessions then threw
trying to read date fields off that null user until the entry expired.
createSession now retries the user lookup once before writing the
cache entry, and findSession/findSessions lazily re-resolve a cached
session with no user instead of throwing, repairing the entry when the
user is found and falling back to a miss only once it's confirmed gone.
Fixesbetter-auth/better-auth#10884