Yesterday i found another interactive fiction engine called Windrift that made me think of you. Not because i think is the ideal engine for your case, as it is targeted to web developers, but for this mini decision tree i saw in its manual:
Windrift is not great at branching stories!
Windrift does not provide strong affordances for managing complex parallel plotlines—you can implement such stories in Windrift, but you'll have to manage this state yourself. If these are the stories you want to tell, look instead at a library like ink, which has first-order support for story threads that branch, join, and recombine.
Windrift does not have a parser!
There is no text input parser or world model in Windrift. If your story involves significant physical exploration or object manipulation, consider a parser-based game in Inform 7 or a similar library.
Windrift is not for novice programmers!
This manual and Windrift itself expect the author to be familiar with web development and software engineering. It's especially helpful if you are comfortable with JavaScript or TypeScript and the ReactJS framework. Novice programmers or people who want to just tell stories and not spend time on source code should start with the excellent Twine.
So, there you have it: Ink for complicated branching stories, Inform 7 for a deeper level of interactivity, or Twine if you prefer writing stories rather than source code.
I also wanted to share with you a commercial game written in Ink i heard about today: Werewolf: The Apocalypse - Heart of the Forest. I think this game is relevant here because, even though it has nice visuals and sound effects, it is primarily a text-based game where the narrative is king. I do not know whether it is the kind of games you want to make, but i believe is a nice example of a game that focus a lot more on the parts that you seem to enjoy.