The original query, actually generated by code I wrote being invoked by an end-user, was for a whole month. I fished the query out of the debugging.
I already knew a smaller time-frame affects this query. So I doubted it was data-based. But I did the sort of test you described: I ran it for the first half of the month: 7 seconds. Then I altered the dates for the second half of the month: 7 seconds. :-/ It's obviously the number of days. I can find the break point without too much more effort, but I don't think knowing that will win me anything.
Wade.