Quick update. My lazy self just let this problem go but it came to a head a couple weeks ago when the heater just totally stopped working. Temp gauge wouldn't move off cold. I had installed a safety thermostat that locks open if it gets too hot and that's exactly what happened. One of the hot/cold cycles must have been too hot. So I figured it would be a good time to replace that AGAIN and also do another new water pump and a new upper hose...and just for the hell of it, a new radiator (old one was not really that old, a few years maybe.)
I drove the truck home from work and dumped the coolant right away. It came out looking like mud. There was an unbelievable amount of dirt suspended in the coolant and even more in the overflow tank and I got a lot more out when I flushed tap water through it. I took the heater hose off the water pump, capped the port on that, and ran water through the heater hose and let it run out of the lower rad hose and then reversed it a couple times until I was no longer getting coolant or dirt. The thermostat was locked open and it had chunks of black crusty junk stuck to it.
Reassembled with new parts, a 180 degree stat and I was able to bleed it like I always have. That's new, it always fought me by bubbling out prematurely or taking forever. Two 10+ mile drives so far and it gets up to temp with just small fluctuations now.
My theory here is that there was so much dirt and junk in the first engine that the radiator or heater core were partially plugged even though I flushed those both several times, I just never got it out, and then the second engine contaminated it further. There was air trapped somewhere in there that was impossible to bleed out and it was causing pockets of steam. I guess we will see how the next few weeks play out. I imagine I will have to flush it again at least once but maybe I'm on track to actually have it fixed now.