I second the advise about seeing if there is anything your agency can do. Our case worker had a contact in the local office and actually asked us not to contact them directly as she had good relations with them.
I posted info on checking on your process using a new registration number
USCIS New Processing Dates Reporting. I'm guessing that you are doing this.
If they truely seem to be drawing this out, maybe you should consider getting a lawyer to communicate with them... I know it costs, but if it's a matter of losing your son... the cost would be worth it.
Please take care and keep us posted!