Just to eliminate a possible cause, disconnect the ground cable froze the framer or engine, where ever it is connected. If you can measure the resistance through this cable, must be less than 5 Ohms. Clean the terminal and the frame down to bare metal, no paint and reconnect. We want to make sure that this connection is not a problem. Second, if you have materials ( 2 wire terminals and a short piece of braided wire) make yourself a jump lead to temporarily ground the solenoid. You can connect this lead to any good ground. When you install and test this it will tell us if current is going through thr primary circuit of the solenoid, you should hear a loud clipping sound.
OK - we're back in business. Still left scratching my head a bit but here's what happened.
First, I tested resistance through the battery's ground cable to the chassis and got 0 resistance. I took the cable off entirely and tested it by itself - again, 0 resistance. It is bolted down just above the rear tire and the bolt and ring looked pristine. Regardless, I sprayed it down with some WD-40 and hit it with a wire brush (the ring, the bolt, and the connection point).
Second, I made a jump lead to ground the solenoid. Undid the existing small ground wire (which was always reading 0 resistance, so I felt like I already had a good ground) and put my jump cable on and then connected to a bolt on the engine to ground it.
I hopped on the mower and it started up. Ran it for a while, turned it off, started up again. I undid my jump lead from the solenoid ground and hooked the original wire up - and it started. So it's got to have been a bad ground connection from the battery down to the frame. It looked really good to me with no corrosion but who knows. Should have tested after each step to know for sure but at the end of the day, I'm back up and running - finally.
Thank you Rivets for taking the time to read all these messages and guide me to a solution.