My experience while interviewing with MS is somewhat similar with respect to not hearing back after each stage. The initial phone interview was quick with what seemed like a lower level HR person who asked basic questions from a list with many mispronunciations of MS SQL technologies. I didn't hear anything for three weeks so I called them and they said, "Oh yeah. We want to schedule another phoner with the product team". A few days later I interviewed with for about an hour with two engineers and it was more inline with what I had expected. This time I sent an email the next day thanking them hoping that would at least keep me in the back of their minds. Same thing. About three weeks later I called to find out my status. "Oh yeah. We would like to fly you to Virginia for an in person interview this week". They set up my flight and hotel and I went through three interviews with different groups and left thinking, "Well that was horrible and embarrassing. They are way above anyone I had ever worked with". Same thing. Sent an email thanking them along with my expenses. About six weeks later I needed to know my status since funds were getting low. I called them up and was told I wasn't ready to work for them. But I should add them on LinkedIn to keep in touch. My self esteem was pretty shot, but I ended up with a pretty sweet job that week. I still get emails from them every once in a while when a position opens up, but three years later I still get a little anxious when those emails hit.
So yeah, their post interview stage communication seems to be the weakest part of a process I am sure I was one of hundreds going through at that time.