I'll get one guy running, and several dudes that just smoke forever... or until they're hit with debris or critters. Getting hit with debris seems to exhaust them, so they're right back to the pipe. I've seen this behavior before, back when I was in software development -- have you tried putting tobacco in their pipes instead?
On a more serious note, It feels like it's either an off by one issue (for example, using > instead of =>), or because one runner isn't affected, it might be an unintended index reinitialization when you're iterating over the runners' endurance cycle (it keeps resetting to runner zero instead of cycling up to update the subsequent runners).
Take all of that with a grain of salt, mind you -- I'm no developer. These are just the kinds of dumb errors I've made when trying to get something to work.
Not sure if it makes a difference but I'm playing the browser version on:
Chrome Version 142.0.7444.163 (64-bit)
Windows 10 v. 22H2