Before I critique your play, I’ll say that I think the die was cast. You were destined to get coolered and go broke. You’re not laying it down to a 7.5BB raise and even if you just call, you're probably mixing it up on the flop. There’s a good chance a flop bet gets called buy the nut flush draw w/ 1 over and then you’re in the same trouble you ended up in anyway.
Preflop Play - I think you might have overplayed KQs preflop. With a 20BB 4bet the only
hands that are going to come along with you are better than you. Unless you had some sort of read, his call should tell you that you’re behind. I would think AA, KK, and QQ move in on you here. I think everything less than AJs, AQo and 99 fold to a 30BB bet. So that means you’re most likely against 99, TT, JJ, AKs, AQs, AJs, AKo, or AQo. You have blockers to AK and AQ, so they’re a little less likely at this point.
Flop Play - You hit the flop and missed the bet at the only point you were ahead. If you had committed everything (in your mind) to this hand; this was the point to shove. For me, I’m not shoving because he’s already told me he’s holding premium cards and (as a nit) I’m afraid of half of what I think are his possible hands. But this was the last spot you had any chance to win the pot.
Turn Play – I like the stab because if you’re ahead you may pick it up and if you get called or raised you gain information about their hand. At least now you know you’re likely in trouble. You’re just not that likely to get called with TT, JJ, or AQo anymore, and you’re behind 99, AKs, AKo, and AsXs. What’s left? What are you hoping for now? KxJs? Does KJo call 20BB more preflop?
River Play – Even though 3h pairs the board, I think it’s a blank. I don’t have a single 3 in his range and 99 was already ahead and is now more confident. BUT, if there was any doubt about the strength of his hand when he smooth-called the turn bet, now he’s literally shoving it in our face. I don’t call here unless I’m really short if I don’t.