Sound good,
so, this is what I did, removing multiple responses but using multiple notification and just a final response:
--> DATA FROM CLIENT TO SERVER
<-- DATA FROM SERVER TO CLIENT
--> {"jsonrpc":"2.0","method":"long.running.task","params":{"progress":{"interval":5}},"id":"8c918fc4-d0e6-472b-bfbe-ce8024c6f91b"}
<-- {"jsonrpc":"2.0","method":"long.running.task/progress","params":{"request_id":"8c918fc4-d0e6-472b-bfbe-ce8024c6f91b","foo": "bar","progress":{"elapsed":2,"remaining":98,"status":"running"}}}
<-- {"jsonrpc":"2.0","method":"long.running.task/progress","params":{"request_id":"8c918fc4-d0e6-472b-bfbe-ce8024c6f91b","foo": "bar","progress":{"elapsed":3,"remaining":97,"status":"running"}}}
<-- {"jsonrpc":"2.0","method":"long.running.task/progress","params":{"request_id":"8c918fc4-d0e6-472b-bfbe-ce8024c6f91b","foo": "bar","progress":{"elapsed":4,"remaining":96,"status":"running"}}}
<-- {"jsonrpc":"2.0","method":"long.running.task/progress","params":{"request_id":"8c918fc4-d0e6-472b-bfbe-ce8024c6f91b","foo": "bar","progress":{"elapsed":5,"remaining":95,"status":"running"}}}
<-- {"jsonrpc":"2.0","method":"long.running.task/progress","params":{"request_id":"8c918fc4-d0e6-472b-bfbe-ce8024c6f91b","foo": "bar","progress":{"elapsed":6,"remaining":94,"status":"running"}}}
<-- {"jsonrpc":"2.0","method":"long.running.task/progress","params":{"request_id":"8c918fc4-d0e6-472b-bfbe-ce8024c6f91b","foo": "bar","progress":{"elapsed":7,"remaining":93,"status":"running"}}}
<-- {"jsonrpc":"2.0","result":{"foo": "bar"},"id":"8c918fc4-d0e6-472b-bfbe-ce8024c6f91b"}