I was thinking it was kind of a generic sleep or async/promise type thing. Which is another thing I don’t really understand lol.
Yeah, lua 5.2 (used in factorio) has coroutines in the reference implementation, which are for that async stuff, but they're disabled in factorio, and loaded lua code blobs can't be serialized in savegames (unless it changed in last couple years), so there's definitely no easy suspend/resume for code afaik.
Such explicit "let player take care of state between runs" is the easiest way to implement continued operation after delay too - just run lua code as-is, only handling inputs/outputs for it, instead of some complicated code-parsing and special rules around it.
factories that looked like I was hoarding combinators
They have their place too imo, for simple local stuff or something that has to run fast on every tick.
I think for me tipping point is usually when logic gets complex enough that it has to be written down in pseudocode first, instead of building combinators straight away, where you effectively "compile" it to combinators instead, and that last part doesn't seem really creative or fun, and this combinator kinda automates it away.