Public bus transit and private car transit are inherently in conflict. You basically can't run them on the same streets and expect the bus to not suck.
You could, of course, run the bus in a dedicated, separate right-of-way to solve that problem. But like you said, just build rail at that point