VoIP.ms has a server in Montreal, so (for you) latency should be minimized.
The closest Anveo server is in Texas. Some folks can't tell the difference, for others it's a big deal.
Edit: As pointed out by Robert, the above is incorrect -- Anveo has a server in Laval, QC. My apology for the gross error.
IMO, Anveo is more reliable. You can find many comments and reviews at
http://www.dslreports.com/forum/voip and
http://www.dslreports.com/gbu .
Another good choice may be Callcentric. They have servers in New York and are IMO extremely reliable. I didn't mention them at first, because the cost for an 800 number (when caller is in Canada) is quite high, and that was one of your complaints. With the OBi, you might use Callcentric for local incoming and possibly outgoing, with one of the other providers for 800 service.