In-lining the call instead of awaiting it fixes this.
Check out this Motoko Playground example.
If you go above 25 calls in parallel, you’ll receive this error
Call was rejected:
Request ID: 35071e1b663a96b69ca970787b13653e09cbbec4b40f747c3aaf741e021fea00
Reject code: 4
Reject text: could not perform remote call
This is actually due to the canister running out of cycles that are reserved when a call is made (20B per call). Since the Motoko playground limits how many cycles are on a canister at any point in time, running this with a canister on mainnet that has more cycles on it ensures that more calls in parallel can be made.
Then you should run into the next xnet call limit at 500, which is the canister output queue limit. You can get around this by batching calls.