Well, first off, baseball is unique in that it has no time constraints. It is much more leisurely and people who enjoy it do so specifically because it moves at a slower pace and there is no clock. A typical nine inning game can last anywhere from an hour and a half to a marathon of eight or nine hours long (with extra innings being played).
A typical NBA game lasts about two hours with timeouts and stoppages. Not bad, and most timeouts are brief.
The NFL is the worst offender, because even though it uses a 60 minute clock (four quarters at 15 minutes each) the actual games usually last three and a half hours. There are team timeouts. There are instant replay timeouts. There are television timeouts. There are injury timeouts. There is a timeout with two minutes to go in each half. The clock stops when a player steps out of bounds or "spikes" the ball with less than two minutes to play or drops a pass...And the really weird thing is, the stoppages have actually become central to the game itself. Strategy and the way television covers the game have been completely altered over the years by all the extra stopping. And most fans may grumble about it, but in the end, that's just what we've become accustomed to.
And the NHL I know nothing about.