sys.dm_exec_query_stats - what causes total_worker_time to be reset? How to work around that?
I'm pretty terrible at these DMVs however:


When you're joining on the history you can have one plan_handle with multiple sql_handle (where the plan executes with different options), so possibly this is skewing your stats.
The plan handle is for an entire batch, with individual statements inside it, which can be recompiled separately, and this might (I haven't confirmed) overwrite the stats for the batch. You might be able to confirm by capturing with traces/events for plan recompilations and seeing if the times correlate with your counter resets.