When run at idle (600rpm) for 20 minutes or so,
the temperature holds steady at 140, the cooling system does NOT
pressurize, and it loses about a half gallon of coolant.
How do you know it does not pressurize, is there a pressure gauge on the system?
Does the rate of loss continue if you run it longer than 20 minutes? For example, if you ran it for 40 minutes would you lose a gallon?
If it runs longer, does the temperature increase?
Before spending a lot of money on mechanics to remove heat exchangers and send them out for testing, I would get a car parts store radiator pressure tester and check it while not running. I would put a flourescent dye tracer in the coolant and view the exhaust overboard with a UV light as well as check all the plumbing associated with the cooling system.*
If you have a coolant loop in your potable water heater, check the hot water as well.
* You probably won't get anything out the exhaust with the engine shut down so after doing the pressure check with dye, start the engine and watch the overboard with the light. Do this in the dark for best results.
If you see dye glowing, disconnect the transmission cooler inlet and see if the source is upstream (the engine itself or the heat exchanger) or not. If not, then reconnect the inlet and disconnect the outlet from the transmission cooler and check it after pressurizing, dye in that location with none at the inlet shows the cooler is leaking.