The form filled all at once is the hard case
Dialogflow CX's documentation states that when several values arrive in a single turn, usually only one parameter is set — which explains why the well-behaved visitor is the one who breaks the flow.
Collection flows are designed for the user who answers one question at a time. The user who settles everything at once — dumping name, contact and need into a single message — is the case that breaks.
The Dialogflow CX parameter documentation states it plainly: "If the end-user provides multiple parameter values in a single conversation turn during form filling, usually only one form parameter is set". It is not one implementation's bug; it is the expected behaviour of form filling when several values arrive together.
The effect on the conversation is bad in a specific way. The visitor did more than was asked, and the system replies by asking again for what they just provided. From their side there is no way to read that other than as inattention.
The treatment exists and is known: extract every value present in the message before deciding which question to ask, and check which fields are already filled before each question. The same documentation records the neighbouring mechanism — "any form parameter with the same name as a session parameter is automatically set to the session parameter value" — which shows that data already captured should not be asked for again.
The case is worth a mandatory acceptance test: send everything in the first message and check whether the flow recognises what it received.