I think Promise.all should stay reserved for the use case of watching a known set of promises to become fulfilled, it should not be extended to support dynamically growing sets. I'd assume this would also break compatibility for objects that are both synchronously and asynchronously iterable.
As a better solution, the iterator helpers proposal already contains a AsyncIterator.prototype.toArray method which can be used as