Nice work!
My I suggest that you also offer the option to use instancing instead of batching?
Also it could be nice to be able to split in several batches to leverage frustum culling on big area.
This would really depend on the model complexity being plotted. JMB could even suggest use one or other method depending on some kind of criteria (eg: vertices count).
Hm… I think that a better approach is to set, as @nehon suggested, a “chunk” parameter so the user can select the size of the splits. If the mouse is release or not, shouldn’t have any effect on this (so, if you want to modify the previous work you haven’t got to re-do the whole thing), each time you start drawing again (click), it has in mind the already placed objects and smartly manage the splitting and randomness by zones.
This could even be some Engine Feature. Unity, for instance, automatically batches geometries as it sees fit. The difficulty there would be to not make performance worse than without batching though, as the engine can never predict what the user want’s to do.