Another thought (bear with me as I think out loud here):
Can you get an IR thermometer ("temp gun") and check the radiator temp top to bottom? I can't remember if this is a bottom-up or top-down feed on the factory radiator, but you should see a steady gradiant one way or another.
If you don't, your radiator may well be full of "oysters"... calcium carbonate. This would block some of the tubes, resulting in inefficient cooling, especially under load. FYI, RMI25 will eat that out of the system. I'm beginning to sound like a commercial, I know- I have no holdings with them, just a happy customer.
If you REALLY wanted to go nuts and "nuke from orbit" any crap in your cooling system like I did (the coolant was brown when I got my 97)- install a Prestone flush kit (the Tee in the heater hose), drain the radiator (I removed the lower hose and let it drain into a bucket), then refill with water. Run the engine to heat-cycle it, then follow the instructions in the prestone kit- repeat as necessary till you see clean water coming out. Then here's where I get crazy:
Go to the grocery store (Lowes, AA Hardware, whatever). Buy a couple bottles of CLR. Pour ONE of them in your radiator, top off with pure water (We are going to assume you don't have freezing temperatures to worry about- I'm unfamiliar with your region of AZ at this time of year). If you have freezing concerns, by all means add a little glycol to protect against it. Don't worry about rusting- yes it will happen but we will address that chemically) Run that for a few hours of runtime, whether a long trip or commute to work over a few days. Just don't leave it in for more than a couple weeks (you've got an iron block here, and not running a super concentrated solution- so don't have to worry about eating the radiator (this is why we are only running one bottle). Drain and see what you get- bet it's not the clear water you got last time you drained it- this tells you there's blockage/buildup somewhere in the system and you are chemically eating it out of there. Repeat till you get clean water out. It may take a few bottles of CLR, but you know you have a clean system when you're done.
Some folks run a box of baking soda to neutralize the CLR, I've never bothered with it- because by the time I do the final straight-water, no CLR and then flush/fill with coolant mix iteration, the acid content is trivial... and will be neutralized when I add my 8 ounces of RMI25 anyway.
So, as I just said- after you get that final heat-cycle and few hours of running with CLR and get clean water out on the flush- refill with straight water. Run that through a heat cycle (doesn't need to be a few days, a run to the store and back is fine), drain the water and refill with a proper water/coolant mix. 50/50 is a good baseline, I think I run 25/75 glycol/water simply because we don't know what sub-zero temps are where I live
. Top off with 8 ounces of RMI25, and then follow the instructions on that bottle (basically, leave it in for ever and ever amen, and periodically open the radiator cap and coolant tank bottle, if you see anything but green, add water till the gunk floats out. RMI25 will float all the crap to the top of the tank.
Parenthetically, have you checked your coolant recovery tank? Is it clean? If not, take it out, take a hose and spray it out. Get some Dawn (or dishwashing soap of choice), shake it around and get all the muck out of it. You don't need that junk in your engine.
Naysayers can send their complaints to /dev/null. I have been there, do this, all the time, on iron blocks without issues. I'd be slightly concerned with AL blocks/heads- but in that case I'd just heat cycle it for an hour or so and get it out of the engine that same day. I literally did the above on my 97 just like yours and it's been just fine.
I'm not saying this will fix your problem- but I AM saying it WILL scrub the heck out of your cooling system, thus removing another point of uncertainty in fixing the issue.
Sorry, got long.