This is an interesting case. First, here is a more minimal example. While
Simplify does not eliminate T:
Simplify[(1 + 2 a^2 (a + b)) T == 0, T != 0]
(* (1 + 2 a^2 (a + b)) T == 0 *)
FullSimplify does the job in this case:
FullSimplify[(1 + 2 a^2 (a + b)) T == 0, T != 0]
(* 1 + 2 a^2 (a + b) == 0 *)
Simplify does work for much more complicated cases such as
Simplify[(1 + 2 a^2 (a + b) + x^1/3 - Coth[Gamma[42^z] I]) T == 0, T != 0]
(* 3 + 6 a^3 + 6 a^2 b + x + 3 I Cot[Gamma[42^z]] == 0 *)
So the complexity by itself is not the issue.
Now, to a possible solution to your problem. In the MMA documentation for
ComplexityFunction the "Properties & Relations" section contains the complexity function
Simplify uses by default to assess the complexity of a term. You may modify this function such that any appearance of T is extremely expensive:
SimplifyCountX[p_] := Which[
The first case within
Which[...] is the modification. Everything else is like in the documentation.
Using this complexity function things should at least improve for you:
Simplify[(1 + 2 a^2 (a + b)) T == 0, T != 0, ComplexityFunction -> SimplifyCountX]
(* 1 + 2 a^3 + 2 a^2 b == 0 *)
I also tested this with more complicated functions, and it seems to work.
To make sure if it worked, use
on the simplified expression.