Das ist genau das Problem! TFDJSONDataSetsWriter.ListAdd speichert die Instanz in der Liste. Die Umwandlung in JSON geschieht erst später. Aus diesem Grund musst du nicht nur jeweils eine separate FDQuery mitgeben, sondern diese müssen auch außerhalb deiner aktuellen Routine weiter existieren.
Wir haben das so gelöst, dass es eine TObjectList<TFDQuery> in der Servermethodenklasse gibt, die jeweils beim nächsten Aufruf der Methode zuerst geleert wird.