Warning... this answer presents things differently from the more complex and accurate model, which can be found here: http://www.lel.ed.ac.uk/~heycock/papers/topic-draft.pdf
I can't think of how to summarize the model in that paper to fit in an answer, so instead I'm going to present a different model (mostly from my intuition, so do take it with a grain of salt) which works for a more limited number of sentences, but I think lines up result-wise with the model in that paper.
Taking a basic
The determiners of the semantics of が are:
Y is temporary or permanent,*
X is new or old information,
- whether the clause is embedded or not
When you have a temporary predicate, the neutral reading of が becomes possible.
"Rain is falling."
"The weather is cold."
"A cow is eating grass."
(Note: all of these can be made exhaustive by placing stress on the が-marked argument.)
However, if the が-marked argument is already in discourse, then you would mark it by は.
「雨はどう？」「雨はまだ降っている。」 (You could, and normally would just drop 雨は entirely, but it's okay to have it, and necessary if you say some other stuff before answering the question. Using 雨が would sound weird, as if you aren't responding to the question but just making a statement.)
「今日の天気は寒いねー。」 (Using が would be exhaustive here)
「あの牛は草を食べている。」 (Using が would be exhaustive here)
There are some things which are in discourse by construction, such as 私, or things marked by その, あの, 今日の etc. -- so if they are accompanied by が the only way to read them is as exhaustive reading despite the possibility introduced by a temporary predicate.
When you have a permanent predicate, it is necessarily the exhaustive reading of 「が」:
So you instead mark these things with は to get a neutral reading.
What I've said so far holds true at the top level of the sentence. However, in (most) subordinate clauses, the only reading available for は is the contrasitive reading, so instead things fall back to が (regardless of temporary/permanent or old/new distinctions):
[*] These are called "stage-level predicate" and "individual-level predicate" in the literature.