I see now the ability to read contents can be helpful to you. Unfortunately, it is currently unavailable (1.1.6).
I am thinking of an alternate solution for your use case. Instead of reading chest contents, can try read "density" of the output belts.
The flow in this figure is from left to right.
In the output belts, the first (left) row is just reading the contents.
They are connected to the constant combinator, which is used to control the on/off of second row. (Note it has negative value, so to sum up with measured values.)
The second (right) row is on/off belt, they are enabled only when the first row is full.
You can see the output belts on the right have more-or-less the same pattern, thus output balanced.
PS1: For four output belts, the combined "density" can never reach 32. So 31 is the max density you can get.
PS2: If may omit the constanat combinator, and just set value of 31 directly to the second row.