$20,500 is still beyond absurd. If you love the vehicle and want to keep it long term, getting a 2nd opinion of the diagnosis from the GM dealer wouldn't be a terrible idea. If they confirm it is a true engine replacement job, then you could consider trade or fix avenues at that point.
I would say to look at a trusted independent shop you can trust, but with this diagnosis and quote, I have little faith in that being an option in your area.
If I were in your shoes, anything beyond the $5,000 repair range and I would be looking to trade the vehicle. This is coming from someone who sank $15k into a 2015 Suburban for an engine/transmission replacement last year. Worst financial decision I ever made.