Your flop raise was perfect. He was semi-bluffing and you caught him. He is a moron for calling it.
I have no clue what I would have done on his turn bet.
I have a player note that I find myself using more and more that would apply to this guy: "Will can ANY BET no matter how high if he has a flush draw"