As WWarren mentioned in the post the scan is probably hanging on a very large ie 3 GB, or the file is an archive file that can be extracted that contains thousands of files.
I would look at the OnDemandScanLog.txt to see what file it is haging on or use Process Monitor to identify the file. Then you can set an exclusion for the file.
You can Disable Scan inside Archive files in your On-Demand Scan task as a troubleshooting step to see if that clears it up as well.
Here is the link on how to use Process Monitor.
Unfortunately, the file smaller than 1Gb. The antivirus definition set being used is of the 5300 build. It could be possible that upgrading to the 5400 build will solve this problem. Will update status.