Assuming there is already double track from Union to Aurora, hourly all-day service to Barrie would just take one more passing location. A good candidate may be Innisfil station. However, this is the bare minimum required for hourly service, so it would not support bi-directional service any more frequently than that (i.e. say goodbye to the current half-hourly peak direction service). So we'd actually want to design for half-hourly service, which would require additional sidings at/near Bradford and Barrie Allandale.
It depends what your loading standard is. If your warrant is a packed 10-car bilevel train, then sure, we'd never meet the warrant. But if we only expect a half-full six-car train, then I think that hourly all-day service to Barrie is conceivable in the context of a general increase in rail use for non-commuting purposes due to more widespread AD2W service. The last few departures would be lightly used, just like the existing late-night departures on the Lakeshore line, but they operate to provide a consistent service throughout the day. It's also worth noting that we already have late-evening train service to Barrie on weekends arriving as late as 12:30AM, with northbound departures at 21:50 and 22:50 (arriving Allandale at 23:25 and 00:25 respectively).
Train-operated trips later departing later than 23:00 might be hard to justify given how late they'd arrive in Barrie, but I think the intent of the question was simply to refer to all day service including the late evening. I don't think the point was to propose that 12:30AM be the exact time that northbound departures from Union switch from trains to buses.
Given that we're not talking about peak period services, we're not really talking about commuting trips. For off-peak services, we're talking more about intercity trips, of which there are a fair number between Barrie and the GTA. Compared to some other nearby cities such as Hamilton or Kitchener-Waterloo, Barrie seems to be more interdependent with Toronto.
Besides, the travel time from Union to Barrie is not 2 hours. Current off-peak trains cover Union to Barrie in 1h35, and that's making every single station stop. With RER covering local service from Aurora to Toronto, the hourly trains to Barrie would make fewer stops through that segment, which already puts the travel time below 90 minutes before even considering potential electrification or track speed increases.