questa è una limitazione di SSMS non del campo di testo, ma dovresti usare varchar(max) poiché il testo è deprecato
Ecco anche un rapido test
create table TestLen (bla text)
insert TestLen values (replicate(convert(varchar(max),'a'), 100000))
select datalength(bla)
from TestLen
Restituisce 100000 per me