A game's length should not vary too much above its typical length. If it does, it can become boring, or cause issues for the players.
In the classic game Diplomacy, players' pieces battle for control of Europe. The pieces are not destroyed, and can simply push each other back and forth forever.
A game's features should push it towards a conclusion. I call such systems "ratchets". A "hard ratchet" moves the game continuously and irreversibly in one direction. The game might end in a set number of rounds. This is a hard ratchet.
A "soft ratchet" generally moves the game in one direction, but the game can move backwards, or simply stay where it is. The end of the game is inevitable, but getting there could be slow or quick.
Most games have inherent ratchets in them. If your game doesn't, put one in.
Scrabble has 100 tiles, which are depleted at a fairly predictable rate, after which, the game ends. This is a fairly hard ratchet.
Chess has two softer ratchets — the fact that pawns can't go backwards, and, more importantly, the fact that captured pieces do not return. However, pawns often become stuck, and the game still works without them. Unlike Scrabble, Chess turns can be played without the loss of components. Pieces can just keep moving around. All this makes Chess games vary in length much more than games of Scrabble do.
This is a ratchet that gets harder and harder as the game progresses.
Some number in the game is inexorably increased. This causes effects to increase in magnitude, and become more likely to end the game.
Poker continually ramps up the blinds (automatic starting bids), until players are playing with very large proportions of their money each hand. Each player is only a few hands away from elimination, and players are thus rapidly eliminated.
A ramp can also be good for other reasons. It makes the game bigger and more exciting, or just different, as it goes on.
Magic has a Ramp built into it — the "land" system. Players play more and more land cards, which facilitate larger and larger spells. This doesn't necessarily mean the game will end though. However, there's another ratchet: a game of Magic also ends when one player's deck runs out. That's rare, but it stops a very small number of super-slow games becoming never-ending games.
If you can't guarantee your ratchet, it can be wise to put a much slower but more certain ratchet behind it, by declaring that a dwindling resource eventually triggers game-end, if nothing else does.
Similarly to Magic, in my gangster game, players have health, and they lose the game when their health falls to zero.
The game is slanted in the direction of decreasing health, but not heavily. Players can gain significant amounts of health, as well as lose it. In some setups, and with a bit of luck, players can stay alive for a very long time, despite the slant.
I added a number of "finisher" locations into the game. These are places a player can go, that have a good chance of eliminating players. These places cost large amounts of money to go to, so they can't be accessed too early, or without effort, but they're like mini-ramps, where the volatility of the game briefly skyrockets, and even entrenched players can be eliminated.
Magic also has another ratchet, a life total. When a player's life total is reduced to zero, they lose the game. There's nothing stopping them from gaining life, however. Despite the face that a player can gain life, they usually don't gain much.
The game is statistically slanted in the direction of decreasing life totals, and usually ends in reasonable time.
Your ratchets must work under all circumstances. They can't rely on certain cards being drawn (unless those cards are extremely common.)
Earlier in the design of my gangster game, I added Machine Gun item cards as ramps. These would make you permanently do more damage to the other players. However, these cards could be on the bottom of the deck, and players weren't compelled to use the card when they drew it.
Similarly, my finisher locations might not be present on the table in a particular game. I changed the distribution of the cards such that one finisher location was always present, and made sure that all of them were at least reasonably lethal.
If your game only has a soft ratchet, look at each thing in the game, and ask "Does this progress the game"?
The entire game is a decline, or an ascent. Look at it as a whole, rather than from one player's POV.
I've struggled a lot with soft ratchets, and my strong feeling, these days, is just to use a hard ratchet. If your game doesn't have one, add a new system that's a hard ratchet.
One of the biggest ongoing problems with Radlands, that can't really ever be completely fixed, has been games that take way longer than the average game length. The game has no real ratchets, so I've just had to bake slants in all over the place. I think I've largely mitigated the problem, but it's pushed the game very much towards aggressive play.
These days, I'm a big fan of having multiple ways to win. If your game has a win condition other than points (or whoever has the most of something), you should add points as well. Alternate win conditions function a bit like a catch-up mechanism, in that a losing player may still be able to win on one win condition, making the game still fun. They're also a hard ratchet.
In my gangster game, I ended up adding two ratchets.
One is "gang members", which increases the damage you do to other
players, when you attack. As this number approaches 10, the opponents'
chance of survival gets very low. That's a strong ratchet, but it's not guaranteed to work.
I also added points, which I called "reputation". You win the game if you get 10.
It's not the usual way to win, but it kicks in, in longer games.
Trying to make the game end without this ratchet had been an
intractable problem.