Over the last year or so I've become a convert to using citric acid instead of other acids such hydrochloric and sulphuric after doing a comparison on some rusty nuts from one of my motorcycles. I did a post about it at the time so wont repeat myself here. I hadn't considered using it in my ultrasonic bath but will give it a go based on the comments above.
A simple way to stop cross contamination in an ultrasonic bath is to use glass jars placed in the basket to hold the pieces (if small enough) to be cleaned and fill the jars with whatever solution you use for cleaning. You then fill the bath with water up to the usual height. Using this method you can, if desired, use different cleaning agents at the same time. It also has the benefit of keeping your bath protected from any more aggressive solutions you might want to experiment with.
A simple test to prove that the glass jars do not interfere with the cleaning process is to place one part in a jar and one part directly in the tank and compare the outcomes.