I've found that almost every one-shot I played in took 2-3 sessions.
I've managed to run 100% of my one-shots to time though, Here are some tips that can help with that.
- Always schedule an encounter before the final battle that's an optional scene, take it out if you're over-running.
- Make sure to have NPCs around who can hurry the characters along if they're dawdling too much.
- Write plotlines that contain an element that motivates the characters to solve them soon (e.g. kidnapping, escaping villains, deadlines for results.)
- Make regular sacrifices to Chronos, the god of time.
- Try to run scenarios where the characters start already knowing each other, so introductions can be sorted out in summary during the introduction, rather than at the table during play.
- Release a swarm of ravenous goats into the room 15 minutes before the session is supposed to end.
- Make sure your that your one-shot is planned to take about half the time that your group could spend at the table, so you can over-run a little without trouble.
- Try to keep table-talk to a minimum, request players put their phones away before you start.
- Plan to have food after the one-shot finishes, so people start getting hungry and push the game along.