There is nothing wrong with how this hand was played. I would have played this the same way. You bet out on the flop which I believe is 100% correct. On the turn you just made a very strong hand and are likely way ahead now. Checking was the right thing because you can either get a bet out of your opponent or let them catch up to the second nuts. You got the bet, IMO raising him on the turn is definitely correct. A call only works if he makes a hand worth betting on the river, and I think it would make the river harder to play. If a low heart comes you are probably good to try and get it all in. If no heart comes you are probably only getting called by trips aces or you are going to face a better boat. All other hands will fold. You also will have to bet out, checking behind allows your opponent to showdown for free and you lose value. On the turn your opponent has shown commitment to the hand. If he has a hand brewing or made he'll be willing to put more money in.
River blows big time, but is irrelevant to how you played this hand.