You have to have a clear policy and you have to apply it equally to everybody. You can not go through a pile of bills and decide who you are going to give a break. It is wrong on many levels and it is just unsafe for you. You are setting yourself up for a discrimination charge and complaints at very least. Very difficult to defend.
Nobody should run $600 bill, they should be dealt with much earlier. I have seen all your ideas at work with partial success. The most important thing again is that your policies have to be clear to the patient and you have to be consistent in applying them.