Here's how I solved it. Make sure you backup screenrecorder some place before you go messing with it. I know that the max time is 180 seconds, and is stored in a 32-bit integer. In hex, this would be B4 00 00 00. So I loaded up screenrecorder into ghex, (my hex editor), and searched for B4 00 00 00. There were only a few candidates. On the 6th try, I found the location where the constant was stored. In my version it was at offset 0001B008. I changed the B4 to D4, which is 212 decimal, and screenrecorder ran for 3 min 32 sec. So then I changed it to 10 02 00 00, which would be 210 hex, which is 528 dec, and it ran for 8 min 48 sec. So I changed it to 10 00 01 00, which would be 10010 hex, which is 65552, and it ran... well, it's still running.
I didn't want to mess with recompiling my OS, I just wanted to change this one constant in the screenrecorder program. So I did. You have to have root permissions to overwrite the screenrecorder, and I had to remount my system folder because it was mounted as read-only. I did that with the command: mount -o rw,remount /system
It would have been awesome if the developers had written screenrecorder to default to 180 seconds, but allowed you to set whatever max timeout you wanted. It's an open source project. I should probably figure out how to submit a patch.
Cheers