This is what happens when you try to overprotect big pots, let this be a lesson. Pushing with A high is not a very good idea. He still had 12 outs to beat you on the river (if he thinks you're on the nut flush draw with no pair, and 15 if he thinks his 3 is live). Flat calling the flop means either you have a 7, or the nut flush draw. No one in their right mind would slowplay TPGK in this spot. I would say, next time raise $tinger on the flop from $160 to $320, and you probably take the pot down right there. If H@LL is any good at all, he knows you're not going to slowplay a pair with a flush draw on the board. The continuation bet on the turn is what killed you, he knew you'd make that play whether you had a 7 or the nut flush draw. Since if you did indeed have a suited ace that you're betting a draw to, obviously you had it on the flop, which means you would have clubs, which also means YOU CAN'T BE HOLDING a 7. Since unless you're a complete fish you're not going to call a PFR w/ A7o, even with a positional advantage.
You should have pushed on the turn, not the river. If you push and he calls with his 12 outs that he knows are probably good you're getting the best of it, if he calls and outdraws you, you were ahead when the money went in. If you'll call a standard PFR with K7, or K5, or 75s please start coming to some of my games. You could've been slow playing KK or calling the bet to set it or forget it with 55. If you had a fullhouse on the turn, you would've given him a free card to see if he improved. Betting here means "I'm not Full yet. Go away." IMHO, bad post flop play cost you this pot. All-in on the turn and you probably take it down, if not his 15 (prospective outs, he doesn't know you have his 3 covered) outs probably make this about 3.75-4:1 in your favor going to the river, he can catch a non-club 4,6 and 9 spades and in his mind probably 3 3s. He even has a one out redraw to the nuts. I think a non-all-in on the turn is an easy call for him at this point, because he knows if his read is right he's got a real good shot at dragging a monster pot. Also, I dislike your all-in bet on the river. Again, All-in is a "go away" bet. It screams "I missed my flush, PLEASE DON'T CALL ME". I would've said bet out like 1/2 the pot, it looks much more menacing than going all-in. Again, I think you played this hand very poorly. Not checking the turn behind him. If you did have a boat already you're HOPING he makes his flush on the river if he's on a draw now, which means you wouldn't charge him to see the river. Secondly, the only thing you're getting called by in this spot is someone that either has you beat, or has outs to beat you. His call on the flop is attrocious, but he picks up a monster draw on the turn. If he doesn't put you on 3-6 or 7x, and is pretty sure you don't have a King. This is an EASY call for him on the river.
Next time, bluff all-in on the turn, or check making it look like you're trapping him, and come over the top if he bets out on the river and the board doesn't double pair, and the other flush draw comes. All in all, you were much more likely here to have a hand he was drawing live to beat (even without his straight flush draw) and he had outs to chase. Would it have been any less fishy if he pushes the river and you CALLED with A high? If the answer is yes. Well then you're a total fish for bluffing all-in on the river too. I would've have checked it down at that point, he's not going to check-fold here, the pot is already a decent sized, a TON of hands have you crippled at this point, check it down and save yourself the checks.
I don't think the fold equity on the river here, judging by the flow of the hand, is substantial enough not to check it down. Again, your river bet screams "I can't beat you, don't call". And that was the mistake he capitalized on.
But then again, maybe he's just an idiot that got lucky. We'll never know.