Have you looked at the SQL it is running at the time?
I've seen something very similar when our weekly SQL server maintanence jobs failed for several weeks (I didn't have access to see this & the DBAs didn't notice). The tables were not getting their indexes rebuild & stats updated and so SQL Server was choosing a bad query plan
Try running this to get a the queries you need to run:
select distinct 'UPDATE STATISTICS ' + name
from sys.tables
union all
select distinct 'DBCC DBREINDEX (''dbo.' + name + ''', '''', 90)'
from sys.tables
Mack