It's too bad we couldn't have passengers clear customs in the station a la Eurostar. Obviously, we're looking at a bit different service because Via/Amtrak makes stops along the way and you can't possibly put customs in each station, but I feel that's the only way you can rectify the issue. If we could clear customs in the station, the train would be on par with a plane. At Porter, there is a team of Customs agents for only 7 flights per day (spread out between 8am and 10pm) and that's for at maximum 70 passengers (and more often than not, much much less), so it's not like you need massive loads to qualify a customs station. Also,there's no reason why a border between two very friendly nations should impede the ability the travel in a timely matter. We wouldn't expect planes to land at the border so passengers can be checked, so why do we accept this in train travel?
The solution to me would be to set up a Customs facility in Union Station, Niagara Falls' Station or Buffalo's Station, and New York's Station (penn? Central?) and make it so that way passengers traveling across the border could not get off/on except for at these stops with separate cars for separate destinations. Passengers travelling from smaller centres (St Catharines, let's say) could only travel domestically, and would need to go to a hub to meet an international train.
Of course, all of this is based on there being a strong market for international train travel. I don't think we're at that point at the moment, but maybe the introduction of high speed rail service along with climbing oil prices would help.