Many people go through the naturalization process - studying for the civics exam and strengthening their English skills - and thinking they were successful after they passed both tests just to find themselves waiting for a decision for months or years.
Many things could cause a delay (e.g. a request for evidence, a lost file, an overworked officer) but those aren't valid excuses to delay the processing of a case.
I have tons of clients who waste months and even years diligently submitting inquiries to the USCIS, taking off work so they can go to INFOPASS appointments, writing congressmen and senators, with the only result being a letter saying "we're working on your case, contact is in 6 months."
Other than "papering the file" this is a huge waste of time in my opinion.
There is simply no excuse for such delays and no reason for an applicant to wait. Congress has made it quite clear that the USCIS has 120 days to make a decision or the applicant has every right to file a 8 U.S.C. 1447(b) suit in federal court.
This suit isn't like a "mandamus" action where the petitioner asks the court to order the USCIS to make a decision - any decision - even a denial.
In a 1447(b) action you are taking away the right of the USCIS to make a decision on your case. They literally lose jurisdiction so even if the decide to be petty (kidding they're never petty) and deny your case it's meaningless.
They lack the power to do anything unless the judge tells them to.
Generally, I ask the court to set a hearing on the application with the goal of having the judge approve it. Alternatively, the judge can order the USCIS to approve the case.
Whatever the case may be there will be no more waiting (well other than for the court's schedule).
The facts of each case are different and whether it's worth spending the money on a lawsuit is up to each individual but at a minimum applicants experiencing lengthy delays are well advised to at least talk to a lawyer in their geographic area who handles this sort of case about this option.