If I have a sequential SharePoint workflow, and it's stuck -- status showing "In Progress" -- can I find what exactly it's waiting for, maybe blocking on a OnTaskChanged activity, or expecting some other event?
I would log to history list before each action item that can be delayed in the workflow of what or where the workflow is doing. That way, you'll know what exactly where the workflow is in the process.
Just drag a LogToHistoryList action in the SharePoint workflow actions before the actual delay/waiting action, and edit the description of what action is about to happen. Whenever the workflow is in progress, you can check the history list while it runs to see where the workflow is. I do this on all my workflows for safety and to keep myself out of the dark.