The difference between the elapsed time and the worker time could be because of any wait type, right?
Correct, and you could miss queries that have waited, because of parallelism
Is there a way by digging into the plan cache to check for queries that have caused blocking?
No. What's in the plan cache are the plans that the optimiser created for the query and the optimiser doesn't plan for queries to wait or be blocked.
Poll sys.dm_exec_requests, poll sys.dm_os_waiting_tasks, use the blocked process report, set up extended events.
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)SQL In The Wild
: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter
We stand on the bridge and no one may pass