I once wrote a program that fills a picture box with randomly coloured pixels, and then pits them against one another in battles of evolutionary fitness. The random pixel that more closely matched the colour of the pixel in a target image was allowed to live to the next generation and produce an offspring (slightly mutated of course). The theory was that eventually the random pixels would produce something that looked like an impressionistic version of the target image. It worked, but boy did it take a long time.
I was able to write a subroutine that saves the state of all the variables in the evolution loop. x=23200. y=234. c= 22, etc. And then I just plugged the state back into the loop when I restarted the program again and it picked up where it left off. I'm not sure how complex the loops are for Terragen2, but the same idea might work for saving and restarting a render-in-progress. I'm assuming though that you've already thought of such a simple solution and it didn't work for whatever reason.