I think that the confusion about 19:21 comes from our pre-conceived notion that if Allah says something, it happens right away. There is no evidence of that. Allah causes everything through His laws. In 19:21, the messenger didn't say that child will be born right now. It will happen in due course. To me the following analogy is appropriate to understand the situation. When a young single woman is introduced to an elderly relative, they usually say that may Allah bless you with a good son. That doesn't mean that the girl will be pregnant right away. Also it is important to note that Allah never addressed Marium as virgin. Allah addressed her as "tahur" chaste. A married lady is not virgin, but chaste if she doesn't engage in extra marital relationship.