The bigger issue is using names (mainly “list” and “thread”) that already mean a completely different thing in every other programming language.
Congratulations, I think this looks really promising! I like that it gives you a real programming language to do complex things but also custom syntax for when Python would feel clumsy.
Personally, I use gathers all the time when writing Ink. In my opinion they are the main strength of Ink (and other similar languages: I believe ChoiceScript has a similar feature) because you do not have to create tons of named knots. But it really depends on the type of game one is making. It’s really good for games in the Choice of Games style where the story always moves forward and there are lots of choices that don’t really do anything except printing a different flavor text and maybe changing a stat from time to time. Also the whole sub-choices thing that lets you create short branches without, again, having to create named knots. And Ink even allows you to jump into the middle of a text block with a named gather which is also really handy.
So basically it’s good for games where you have lots of choices and lots of short text passages but the flow between the passages is still hard-coded by the story author (not a more flexible, complex flow like with storylets).
What Ink is dearly missing, on the other hand, is some kind of “do this every turn“ functionality. Using Ink threads to simulate that is kind of a crutch, in my opinion.