We have this open task JBERET-315 (Implement ItemWriter that writes to multiple resources, which is the closest to what you've described above. These are all good points we can think about when implementing this task.
This processing pattern is different from other item writers we've implemented so far, in that here data items are not of the same type, and may have its own challenges, such as rollback.
For list of writer properties, I would store them in an separate file (a structured plain text should suffice, but xml or json can also be used), and pass the file path as a single batch property. The batchelt class can then read in the file content and parse it.