My 2 cents...
Your CP approved I-140 gets sent to consulate if the attorney fails to inform NVC immediately after your I-140 is approved.
Most of the attorney fail to do this. Consequently when your I-145 comes for review, IIO may recall your file from the consulate. This is where the 2-4 months delay takes place.
However some lucky folks have their case sent to rational IIOs who don\'t need to get the file since the case originated from VSC itself. These folks, although a minority, get their I-485 approved in time.
What can be done? Some experts in this board say "Nothing". See past discussions for details.
However if your I-485 has recently been submitted, get in touch with your attorney and start the communication with IIO, NVC and consulate. I don\'t know how much this will help - but may be the only way out.
How I got into this mess? My corporate attorney misguided me by saying that if we send I-485, the case gets automatically sent back to VSC. I believed the attorney and now find my case sent to the consulate.
I am trying to work-out a strategy and will keep the board posted.