If index is stale we may miss timeouts, fixes #2133

Simplify querying for timeouts, and introduce cleaning-up abilities to guarantee we don't skip any timeouts

Further avoid duplicates by better cleanup logic

Adding failing tests demonstrating skipped timeouts
To make this clearer: the first Select changes the shape of the query to RavenDB (tells it to only fetch specific fields), the second one happens in memory after the results are received and are used to project the type we are interested in.