as you pointed out earlier your query gets about 200 times worse within 24 hours so you should expect that every second gained when testing after all indexes have been rebuilt will give you about 3 minutes of difference next day.
Another thing I thought about is ordering. Try removing it tomorrow for testing only.
Fragmented indexes will cause ordering last forever.