Gauntlet stories
The simplest way to deal with the exponential grown of a branching story is to aggressively prune the branches creating a gauntlet style game where "bad" choices rapidly lead to bad ends.
Gauntlets tend to feature one true path that leads to the best ending, though there can be other less-good endings. The bad endings can be quite long "rewarding" the player for their choices even though they've technically lost at this point.
This structure is well suited to horror style games where a single mis-step leads to an unfortunate result for the player character.
There is a danger in this structure that the game is unnecessarily cruel; punishing players for making uninformed wrong choices. If you want to avoid this consider how to foreshadow the outcome of a choice. This can also be a case of learning-by-dying, but RenPy can also roll-back events to a degree, returning to a previous decision point and allowing alternate paths to be explored.