GMing one-shots
I used to be awful at ending one-shots. It always felt terribly unsatisfying. "We ran out of time" / "There's nothing else to do" / "You surgically avoided the plot". It was frustrating and it made me avoid running one-shots altogether.
As with most things, experience helps immensely. During the pandemic, I joined a Discord server so I could finally play instead of GMing all the time. After a few months, I let it slip that I also had a running online campaign where I was the GM, so I was almost forced by my new friends to join the GM ranks.
I had no idea at all what to do at the beginning, as I'm generally a low-to no-prep GM, while I was under the impression that one-shots were supposed to be (mostly) railroaded prewritten stories.
I decided to just use all of the maps I'd hoarded and catalogued in the previous year of online play. Before the start of the session I'd open up my maps folder and select one or two that seemed to fit the tone or environment.
I'd rely on Artstation a lot. Important NPCs, places they visited, interesting buildings: they were all a quick search away, or stored in my idea prompt collection. Every time I'd upload a picture for everyone to see the withered lady or the stilt house village, everyone got more and more convinced everything was planned well in advance.
Some players would even message me after the session: "How did you know we were going to go to the temple / swamp / oracle?"
I obviously didn't. I just listened to their plans, uploaded maps and pictures while they were talking and just went with whatever they thought was fun.
My one-shots stopped being me stumbling to put enough content on the table to give some meat to a single combat encounter, and started being proper player-driven stories. That is to say, the reason I do all this.
After a few months of practice, I started watching the clock too. Whenever we'd get close to the three hours mark, I'd look for any possible spot where I could end the session in a satisfactory way. I would rein in the players (does this count as railroading?) and, after a few sentences to tie everything up, I'd announce "The End".