Keep it the way it is, except that the intentional off the ball foul is worth 3 personal fouls on an individual player (but still only 1 foul as far as team fouls and bonus are concerned). That way, you limit the ability of teams to do it too excessively even when they put in bench scrubs to commit the fouls. It forces the coach fouling to hesitate to use the hack-a-Shaq strategy too much particularly early in games, like the first half without at least considering what it does for availability of some of the bench players. And if one of your key rotation players does it, that's 3 big personal fouls on him just on one play.
It forces fouling teams to at least foul the poor free throw shooter when he's involved in the play (setting a pick or on a offensive rebound attempt), instead of allowing fouling teams to just run up on the guy and hug him in the backcourt or at halfcourt. If the fouled team keeps the poor free throw shooter out of the play, away from the ball, away from any action, that intentional foul costs the fouling player 3 personal fouls. Do it too much early, and you may not be able to afford to do it late in the 4th quarter without losing players to fouling out. Then it would be unlikely to see a guy like DeAndre shoot 20+ free throws in a half. He can still get hacked, but as opposed to 20+ free throws, maybe it's 6-8 free throws. Helps a little with the pace of game without taking out the strategy completely.