I did the train once from BUF, I took the bus (#24?) to the Amtrak station.. that was quite an adventure as it goes thru some less desirable Buffalo neighbourhoods. The train was late an hour, and spent 2 hours at the border. Arrived in Oakville about 1.5 hours late. Never again I thought to myself.
I also took Greyhound once (before Megabus) from the downtown station, took the express bus there from the airport (#204?), that was much better and faster. Greyhound was fine, but did take 4 hours to Toronto, not because of the border (which was quick), but because it stopped in what seemed like in every single town between Fort Erie and Hamilton
I havent done Megabus but friends are going Friday ($7 tickets!), but I think the advantage of Megabus over Greyhound/Train is the lack of stops and the fact it goes directly to the airport.