It seems to me that you need to diagnose why your backup is getting stuck. Have you considered the possibility that it is just backing up a really big file? That can take a while.
As far as good backup software goes I've already given you pointers to two backup packages that are highly regarded. However most of their value comes from scheduling jobs and keeping records of your backup. They probably use the tar command to perform backups. Even if you got some commercial package such as Veritas Netbackup it would use the tar command to perform backups. I know that for a fact since I used Veritas Netbackup in a previous job. So you would be back to figuring out why your tar backup is getting stuck, if indeed it really is getting stuck.
Here is something that you can do to see if your system is having trouble executing your backups.
1) See if you have the sar utility. If not then get it. I believe that it comes in the sysstat package.
2) add these lines to your crontab file for root.
#activity reports every 10 minutes everyday
-*/10 * * * * root /usr/lib/sa/sa1
#update reports every 6 hours
0 */6 * * * root /usr/lib/sa/sa2 -A
3) create the directory to hold the sar data files
Then when you want to review your system performance you can enter a command like this in a terminal window.
sar -q -f /var/log/sa/sa.2006_08_29
This sar command will read the sar data file /var/log/sa/sa.2006_08_29 and will show the queue length and load averages for that period of time. This particular file contains data pertaining to system activity for 29 August 2006. You can look at the man page for the sar utility to find out what else it will show you.