At what age range are children expected to be able to distinguish languages?
Are there any factors that aid children in learning this skill?
I agree with @Nathan that you need to look at studies involving babies to find out at what age children can tell that a language they hear is not their native language.
In particular, there are many interesting studies by Ann Cutler and others, and they have found good evidence that children are attuned to the distinctive intonation and stress patterns of their own language while still in the womb. Right from birth, babies will prefer to listen to those familiar patterns of their mother's language, rather than an unfamiliar language, which indicates that they can perceive the differences.
The interesting thing with these findings, though, is that if the young infants hear a language which has virtually the same intonation/stress patterns as those found in their native language to-be, as Dutch has to English, their behaviour indicates that they perceive it as being the same language. It takes a few months for them to sort out that Dutch is a different language to English, presumably once they start to pick up finer details of the sound systems beyond intonation and stress. Here is a link to Anne Cutler's website including many recent articles.
Depends on what exactly you mean. Children as young as 9 months can distinguish between native and non-native speech by identifying unfamiliar sounds and phonological patterns. How children acquire a language's phonological system is deserving of a SE question in itself.
I do not know of any studies looking at when a child is able to distinguish between two non-native languages.
Wikipedia's section on phonological development is very comprehensive, detailed, and well cited. If you are able, I highly recommend tracking down some of the studies they cite. While I might not be familiar with any of them by name, every study involving babies I've ever read was extremely fascinating.
I've had the experience of living with a family with two small children (ages 2 and 3).
The father would only spoke German to them, and the mother would only spoke Portuguese. The kids could clearly understand both of them, even though they didn't speak much. The father told me that the important thing about this is that he would spoke only German to them, and not sometimes German and sometimes Portuguese, for this would get them confused (he wanted them to learn both languages).
I guess the kids could sense that each person had a proper communication system (one for the father and one for the mother). I think this means they distinguished the languages, for understanding what was said to them required that they knew the values of the signs used in the system.
It seems that if one person uses several languages to talk to a child, this would make it harder for the kid to distinguish them.
My son grew up multilingual from the get-go. In India, my parents spoke with him in my mother-tongue (Marathi), my in-laws and acquaintances in the national language (Hindi), and I, mainly English. He started forming words and saying baby versions of multi-syllabic words like "calendar" by 8 months. By one year, he could speak sentences like "Happy birthday to you" (baby version, of course) and by 1.5 years, could smoothly change languages based on who he turned to speak with. Replies to questions would be in the language the questions were asked and if he wanted specific information, he would start in one language but change if it was someone replying in another language. I also exposed him to German at 4 and he seemed to take to it easily as well.
I have seen other kids easily picking up 2-3 languages as toddlers - depending upon what the parents spoke at home as well as their nanny or other help. Even if the nanny spoke a completely different language (other than what their parents did), they picked it up. So, I believe children do pick up languages early - earlier than 9 months, if exposed to them early.