I think getting the money in preflop is a bit spewy. It is very very likely that one of them has aces or kings in which case we are putting more money in behind. It is always better to call preflop with the intention of folding some flops that are extremely unfavourable than to just put the money in pre with a hand that is behind equity wise.
ie if the flop comes AK2r and the money goes in we are usually drawing almost dead and can happily fold. Similarly if it comes 789 with three hearts we aren't going to be putting any more money in.
We aren't worried about losing action when we hit a hand since it is much more difficult for aces or kings to get away on most flops than it is for us.
I think you do have odds to call the 4bet, and once the flop comes you have to be getting the money in as you did.
Well played.
Another option is to flat call the open raise preflop since this is a hand that plays very easily post flop and we definitely want to see a flop with it. If the hand was rainbow I would always call, with one suit I would lean towards calling rather than 3betting but with the double suitedness of the hand I do think the 3bet is best. I much prefer it if we were slightly deeper (say 130bb to 150bb) giving us much better odds to call a 4bet but it is likely still profitable.