Data cleaning can be a real pain and also can easily take you away from the core task. Nevertheless, it is one of the critical aspect and hence cannot be taken lightly.
I believe you have the right idea because you mentioned that you are seeking balance
. I always think of data cleaning as a marginal transaction. Beyond a certain point, it is not worth the time.
As Jan van mentioned, it all depends on your needs. If your model could be very sensitive to certain features, its better to have them cleaned religiously. If what you are looking for are broader insights, even a general clean of important features can work. The trick is to really understand the tipping point which can come with experience and / or knowledge of the data set.
There is this approach that my team takes often and has worked so far.
1. Once you know what model fits your problem, throw in a feature with random values.
2. Model your data set with minimal / basic cleaning.
3. Plot or tabulate accuracy for all features.
4. Drop all features that perform equal or worse than the random feature.
5. Some times depending on the accuracy even drop features that perform slightly higher than random.
Using this, we are mostly able to get rid of unnecessary features that hog up tidying effort.
Wash Rinse Repeat.