Recover from queue cache miss with oldest data instead of newest.
My goal is to fix issues with a stream that doesn't produce data very often. The problem is that the last sent value is no longer in the cache. However, the old value not being in the cache isn't really important. But when a new value comes for a stream that value is lost because when a QueueCacheMissException occurs and the cursor is set to start at the newest message and therefore skips the message that was just added, but is actually in the cache.
See https://github.com/BMagerMT/OrleansStreamingIssue as an example that produces this problem.
The issue is this fix is not great as it is parsing the token from the exception. However, there doesn't seem to be a way to create a cursor that starts with the oldest entries.
Microsoft Reviewers: Open in CodeFlow
Should fix #9332