The Cavs signed him because Mozgov is still injured, Love is coming back from surgery (and injured a lot), and Varejao is made of glass. They need a guy that they can count on for 30 minutes a game for 82 games down low. That and he is one of the best offensive rebounders in the game, is close with James, is always in shape, plays within the system, is generally well liked, etc. The Cavs gave him an extra 2 million and let him save face because they want to keep everyone happy and it was dollars they would have spent the whole time anyway. Thompson just needed to come into the reality that he wasn't getting a full max of over 90 million. Once that happened it was just a matter of time.
There is something to be said for health. Teams keep paying guys who always seem to be injured. Over the last 3 years, Thompson is one of only 3 players to play all 82 games (along with Deandre Jordan and Damien Lillard), and over the last 4 he's tied for #6 missing only 6 games his rookie year.
If he continues to play 82 games a year over the next 5, it doesn't look as bad, it's only $200k per game. Did some quick math to compare to what other players made per game considering they're injured all the time:
Derrick Rose (after rookie contract): $867k
Gilbert Arenas ('08 contract): $581k
Grant Hill (Orlando contract): $465k
Amare Stoudemire (NY contract): $359k
Dwyane Wade (2011-2015): $$260k
Kevin Love (after rookie contract): $259k
Anderson Varejao (after rookie contract): $158k (and it jumps to $245k per over last 5 years).
And keep in mind all those contracts were under a much lower salary cap, if you calculated those deals under the upcoming cap, the gap would be much, much wider. Five years from now, will he still look overpaid on a per game basis compared to all the other guys who signed contracts this summer? Cleveland gave Varejao around $40m/4yr extension last season. Which player is Cleveland going to get more value out of considering time actually spent on the court?
Of course guys like Derrick Rose and Brook Lopez were pretty healthy their first few years in the league too, so you never know how things will turn out. It would definitely be interesting to look at the entire league on a per game basis instead of total salary though.