I apologize, this was not my intention!
To be honest, this is a use case I never had in my life, except data reporting on platforms, but not for the end user. Both numbers, 20-30 seconds of processing time on the server and 10-20 MB of data transfered to a client. This sounds more like a edge case to me (except some heavy image processing?)
Would you mind giving a real world example where this is required?
Why does the client suffer in terms of performance when the server is taking longer to respond? The request is async, the client is just waiting for the data stream while the rest of the UI is still working (regular Promise)? The main thread is not blocked here?