The best way of paying for infrastructure like transit, is through "tax increment financing."
All warranted infrastructure (hospitals, transit, parks,...) will pay for itself if the rise in local land values generated by that infrastructure was collected by government for this purpose.
However, under the current municipal tax structure, most of the increase in land value is capitalized into the land, and therefore doesn't go back to the public purse which created it, but instead into the pockets of local land owners when they rent or sell their land.
The idea is that the increased land value that government financed infrastructure generates over its lifespan, should be captured by government, and this revenue used to pay for that infrastructure.
For example, the Union Station to Pearson rail link in Toronto need not be financed by federal, provincial or city taxes, but rather can and should be paid for by collecting the rise in land values it generates along the route, especially around station stops.