Render freezes happen when a computer has too little RAM to process a scene. In that case (prooved on Win XP back in the days) a render will start and carry on for some time until it reaches a more demanding render bucket. Usually it may be a bucket containing objects or glass / reflective surfaces. If it is too much for a system to take on, Terragen will return an error and a bucket (along with the core that was scheduled to process it) will be irreversibly dropped out from the rendering. When another problematic bucket is about to be rendered it may, likewise, be dropped again.
If a scene is very complex and this situation goes on and repeats itself, you may suddenly find yourself in a situation when there are no more "free" CPU cores left to process an image. By then, you are left with the image being still technically rendered (timer still ticking) but having dysfunctional render buckets that prevent CPU cores from rendering any further.
Render freezes are very rare if you have anywhere close or above 8GB RAM. If you have that much RAM, I would suggest to repost in the "Terragen Support" section, because the root of the problem might be different.
You may also try what ajcgi, correctly, suggests and render your image in small "crop renders". Crop renders generally fair better in limited RAM environment. This technique may be burdensome however, as you can never really tell what size the cropped area should be for it to successfully bypass RAM limitations. You don't want to make forty crop renders to keep errors from occurring. But also, you don't want to render a crop and find out that, after all, it was still too large for your system to handle.