According to the fetch specification, the WebDriver BiDi response completed steps should be invoked during "flush algorithm".
Currently, ChromiumBiDi relies on CDP event Network.responseReceived, which in turn relies on DataReceived, which:
is called each time a chunk of data is received
It looks like the right event is the Network.loadingFinished.
This seems to be the root cause of puppeteer/puppeteer#14017.