Defragmenting works best when there arent other processes that clash with it, hence the safe mode option or as CW said End Task option. A good automatic defragmenter however does this efficiently in the background.

Download a third party defrag software and your defrag will run a lot faster and can be scheduled to run in the background. Third party defrag software will do a lot better job than the built-in defrag. You can also defrag the master file table and page file before windows starts.