That said, while it wouldn't be my first choice, I do think customs at Union is workable, if not ideal. In my
post on the Union revitalization thread, I explained why I thought the Metrolinx office space could be repurposed. There are a lot of things, such as retail, that I think you could do with that space, but the most appealing to me is to move the VIA Rail concourse up there, and build a pedestrian bridge over to VIA's usual platforms, either overtop the heritage train shed roof, or around its edges. Then you could open up the walls of the current VIA concourse to create a more seamless connection between the new York and Bay concourses while separating commuters from long-distance domestic passengers.
If you built a customs area up there as well, you'd have to build a separate waiting area to hold international passengers after they cleared customs, and perhaps a second pedestrian bridge. The problem, credit to @Bordercollie and @Urban Sky for pointing it out to me, would be the platforms. Even a full 300 km/h line to New York might not see enough trains to justify a dedicated platform, let alone two, if you had to keep the second part of an island platform clear as well. But I don't think this is an insurmountable issue. VIA doesn't normally have two departing trains loading at the same time from the same island platform anyway, so if you were careful to only use the platform for departing trains (sealing off the access from below) and have a customs officer clear the platform of objects (cameras help with that) before bringing in international passengers after a domestic train had departed, I think it might work. You could bring up the next domestic train to the platform as you load the international one, so I don't even think you'd lose much capacity. (There's also the UP solution of building a side-platform nearby.)
I just don't think a customs facility would be worth the cost (though I doubt it would be $1 billion), or the logistical headache, but I think it
could be done.
(EDIT: P.S. Level boarding on a high-level platform would help a lot too, which you could do with a VIA-exclusive platform.)