I noticed that plainto_tsquery('english', 'the T-bird') produces the TSV 't-bird' & 'bird' instead of just 't-bird' which doubles the runtime for this particular query.
How could I fix that without loosing the stop word removal and stemming ?
The text search parser is not configurable, so you cannot get rid of the double result of t-bird and bird. The only known workaround is to preprocess all text documents and queries, e.g. by removing the hyphens:
replace('text with t-bird', '-', '')
That will result in the lexeme tbird.
Perhaps that is good enough for you. But you are losing information that way, for example the distiction between "recreate" and "re-create".