Instances do not overlap with each other. Never, period.
One Generation at a time
Split your work to smaller pieces – instance objects in multiple generations.
Use UV mapped black and white textures to control size and distance for each generation.
Edit result by hand
Remove the unwanted using simple editing tools and fill the space in a different way afterwards.
Save your favourite settings as preset. Next time you choose your target, choose your preset, hit generate button and you are all set.
Use any object from library or from your scene by layers or selections. Adjust probability of occurence for each of them.
Choose between faster circle or better convex hull approximation. Choose single-core to get the best possible fit or multi-core to get it done in seconds.