I used to run a lot of one-shots using a method I called, "clear goals, fluid obstacles."
Clear Goals: Everybody knows up-front exactly what the goal is. "Find special treasure in cave" is a perfect example. This side-steps any debate about "Well what should we do now?" or "Should we go on the old man's quest?" and it also gives an opportunity for the players to come up with their characters' motivations in relation to that goal.
Fluid Obstacles: As part of the planning, I create a bunch of
potential obstacles that are preventing the PCs from achieving their clear goal. But I don't select which ones to actually use until they are needed -- that's the fluid part. This allows me to pile on more obstacles for a fast or clever group, or subtract obstacles for a group that's going slow or getting pretty busted up.
In D&D, an obstacle usually is an encounter of some sort. It could be a static group of monsters just hanging out, or minions sent to kill the PCs, or a neutral party that the PCs must press for clues or favors. An obstacle can also be a literal blockage, like a locked door or trapped hallway or confusing maze-like dungeon. The most important thing about an obstacle is that it prompts the PCs to do something about it. Like, if all the PCs get a disease and the only way to cure it is to finish the adventure, then the disease isn't really an obstacle. It's just a kind of twist or thematic element. Environmental conditions, curses and enchantments are also good for this kind of thing, but again, they are not obstacles unless the PCs can "overcome" them.
For a location-based adventure, this sometimes results in extra empty rooms -- like, there is supposed to be an encounter in that room, but you are pressed for time, so you decide to just skip it. That's totally fine; it's a feature of fluid obstacles. I find location-based adventures work best in rich environments with a lot of interactive stuff in them. For example, in a crypt filled with flammable spider webs, maybe the goblins light the spider webs on fire to burn the PCs, or maybe they don't, depending on whether you need more obstacles. It also gives the PCs the opportunity to burn the goblins! Other fun elements are pit-traps or pressure-plate traps that can't be seen because of a layer of dust; slightly-malfunctioning traps; monsters that might be turned against your enemies; and of course, rope bridges.
"Final boss" is also a tricky when you are pressed for time. If you are pressed for time, you might have to skip it, or greatly reduce it. Usually you should be able to see the end of the session coming and introduce the final boss obstacle with about enough time to overcome it. Give yourself a lot of buffer, and if the fight goes quickly, you can throw in an encounter with minions taking vengeance or whatever, as the PCs try to escape. A roaming boss is also really great for this play-style; whenever the PCs get close to the final obstacle, the boss shows up as an additional challenge. Of course, many adventures work fine without any notion of a boss.
The "clear goals, fluid obstacles" method can sometimes involve a little bit of Schrodinger's Ogre (google it), but for a one-shot, I think that's fine. The easiest way to "fool" the players is by making sure all of the obstacles make sense -- for example, if the party searches a room and rolls really well, you shouldn't have a trap spring up in that room 5 minutes later. They players will be understandably miffed. It's also important that you over-prepare, having lots of obstacles up your sleeve. This allows you to choose the obstacle that follows logically. Like if the party is chasing some goblins across a chasm with a rope-bridge, maybe that's a good time for the harpies to show up. The key to improvisation is, paradoxically, over-preparation, so that you have in your mind a firm picture of what all is going on and what
might happen.
Here's an example of an adventure I wrote recently that uses this technique:
The Cursed Pass
The trick is, when it says roll randomly for an encounter, you can just pick it instead.