The problem isn't the number of fouls, but the inconsistency. Stars get calls, and there are no calls against them, because that's who people paid to see. Then comes frustration and harder fouls.
Same is true with T's.
I'd change it to:
After 6 fouls it's Automatic Penalty whether the team is shooting or not. If they are already in the Penalty, bring back the old 3 to make 2.
Change the amend the T rule so that 2 is not an auto ejection, but any foul by that player would be considered as though they already have 6.
Guys like Kobe commit 12 fouls per game. This would allow the refs to clean up the game a bit, without chucking stars out.
Put enough stars on the court where their fouls likely mean two, and call them, eventually they will back off hacking a bit. That's all the game really needs to have better flow.