I think you’re correct, this is not entirely Airtable’s fault. I was mistake in my earlier assessment that records won’t be picked up by a second, entirely different zap.
The problem in my workflow was that I was using Zapier filters to only run the Zap when certain conditions were met (in my case, it was preventing an automated email from sending on weekends). This was a mistake, because if the Zap saw a new record in my Airtable View, it ran. If an Airtable record did not pass the Zapier filters, then later on, when the record would pass the filters, it was ignored. Zapier only gets one “shot” at a new record in a view, and after that it won’t trigger again.
Airtable and Zapier would need to work together to fix this - Airtable would need to provide an API reference that told Zapier when/if an individual record was updated, and Zapier would then need to provide functionality to re-trigger a record when the record was updated since the last attempt.
For me, the way around this is to avoid using Zapier filters altogether. Instead, I control all the filtering on the Airtable View (I added in several Formula fields to compute various things, like current hour of the day, day of the week, etc.).
By ensuring the record will never appear in a view until I want the Zapier to run, it seems to be working quite well. I have different Views set up for different stages of my automation, and the record can pass between Views successfully and the Zaps run without issue.