I'm guessing that CR is running out of memory...maybe not system memory but whatever memory it uses. I am guessing that there are lots of formulas and variables being used, and the more there are the slower CR seems to run...
also remember that cr reads all the data at least 2 times in processing a report for sorting/grouping and other internal processes.
Since I have sent in files with as many rows or more but no where near that processing time...so it has to be the formulas running for each line of report.
If you use a stored proc, you could try and off load of some of these calculations to the DB Server...but that would mean rewriting the reports which I am sure you have no wish to do.
The only thing to come to mind is to look at the system resources as the report runs, I realize that it obviously hours into the report that it fails...which implies checking the window logs (I don't use them so I don't know which they are, but it's worth some time to see if they have a reason for the failure) or to get some sort of tracking software to see what is happening on the system when it fails.
HTH