stream: fix async iterator destroyed error propagation
NOTE: It should now be safe to re-apply https://github.com/nodejs/node/commit/d15b8ea3bdcb72b8e2dd3aee0cc717daa512d2f6 which was reverted in https://github.com/nodejs/node/commit/2cd98924252fc1b59f72f4ad280001bfcc98a8c7 due to a breaking regression which now is resolved through https://github.com/nodejs/node/commit/d016b9d70897b7702e7862252d768ecdde89bc48
There was an edge case where if _destroy calls the error callback later than one tick the iterator would complete early and not propgate the error.
Checklist
-
make -j4 test
(UNIX), orvcbuild test
(Windows) passes -
tests and/or benchmarks are included -
documentation is changed or added -
commit message follows commit guidelines