Your observations are pretty precise.
In Standard English (whatever that is), relative that is not used a) to head non-restrictive ('supplementary') relative clauses or b) as the object of an immediately preceding ('pied-piped') preposition. Only wh- forms (who/whom, which) are used in these contexts.
a) That is John, {whom/∗that} I interviewed yesterday.
b) This is the ball with {which/∗that} I scored.
However, that may head a clause in which it acts as object of a 'stranded' preposition:
okThis is the ball that I scored with.
In colloquial English rule a) is relaxed, because in improvised speech the distinction between restrictive and non-restrictive clauses is not so strongly marked as it is in composed speech—a restrictive clause often occurs to a speaker 'after the fact', so it is pragmatically non-restrictive even when it is semantically restrictive. But rule b) is almost universally observed in all registers.
∗ marks an expression as unacceptable
There are two types of relative clauses in English, which I shall call 'defining clauses' and 'commenting clauses'. They are best described with an example:
Pilots who have dull minds seldom live long
Pilots, who have dull minds, seldom live long.
The first sentence is a warning about the dangers of having a dull mind if you want to be a pilot. The second is insulting to all pilots.
Defining clauses are never separated from the main sentence by a comma: commenting clauses always are.
There's an old fashioned rule that you should always use 'that' rather than 'which' when you are writing a defining clause. Thus
Animals that lay eggs are called birds.
is grammatical, while
Animals which lay eggs are called birds.
is ungrammatical. These days, however, prescriptivism (language rules) is unfashionable and people are far more likely to consider both sentences to be grammatical, and to mean the same thing. Moreover, in colloquial speech, and even in writing, the rule has never been universally followed.
Of course, neither sentence is factually correct: a snake lays eggs, but is not called a bird!
Best Answer
There is no difference in meaning. There is a difference in use.
Relative clauses—the sort of clause you use, “which is blue” / “that is blue”, which tells us something more about the noun referred to by which or that—are of two sorts: restrictive and nonrestrictive.
A restrictive clause restricts the noun it modifies to what’s defined in the clause. The clause identifies the noun and is essential to your meaning. For instance:
A nonrestrictive clause adds information about the noun it modifies. The clause is almost parenthetical, it could be left out without changing your meaning:
Note the comma in that sentence: it sets the clause off and ‘marks’ it as something added. Now Which/That …
You may encounter another rule, which is loudly disputed. About a century ago the Fowler brothers suggested a “division of labour”—using that only at the head of restrictive clauses and which only at the head of nonrestrictive clauses. This proposal made sense to many people, it was picked up by several prestigious grammarians and style guides, and in consequence it’s often cited as a “rule”.
But the fact is, this division has never been generally adopted, and there’s no reason to follow it. I myself don’t follow it; quite the opposite, I employ “which” wherever I can, because I believe that that has entirely too much work to do already and a multiplicity of thats is likely to confuse the reader.
But that’s my choice. You’re free to follow your own rule, as long as you don’t put that at the head of a non-restrictive clause.