Timeouts aren't the problem. The timeout rule right now is fine.
what needs to change is the annoying charge calls. A guy makes a great crossover dribble, drives hard into the lane, has clearly beaten the defense, jumps into the air for a spectacular play, and then... Disaster! Someone arrives late on his rotation. Rather than attempting to block the shot, the defender resorts to his last option. He slides under the offensive player after he has already jumped and shooting. The defender falls flat, flailing his arms, and screaming... And the ref then rewards this bad defense with a charge call.
I can't stand the charge calls! it needs to be fixed on all levels of basketball.
Either you get there in time to stop the offensive player or you block his shot.
That's it.
No more of this arriving too late but sliding yourself under the offensive player and drawing just enough contact to act like the offensive player "charged into you" nonsense. Stop rewarding unathletic players like Shane Battier for playing bad defense and arriving late on their rotations.
Either you get there clearly in time and the offensive player tried to go through you or you block his shot.