Giving more free throws doesn't solve the actual problem (too many free throws being shot, slowing down the game). Giving an automatic two points is more against the spirit of the game (free points for not doing anything) than hacking. I would rather players be forced to hit free throws, but that doesn't seem to be the popular sentiment (no changes).
The most reasonable solution is to make those fouls count as something akin to a Flagrant 0. That is, if you foul a player without the ball intentionally, they get their free throws plus possession. Different from a Flagrant 1 or 2, these fouls will not lead to an automatic ejection at any point. This completely eliminates the value of hacking, since it doesn't actually give your team the ball back. Though, fouling a player WITH the ball would work as normal. That still gives teams incentive not to put a poor shooter on the floor in a tight game. Rather than incentivizing fouling to get the ball back, it incentivizes aggressive defenses that sag off poor foul shooters and bait the pass.