In the documentation I give instructions on how to build Postgres to use a blocksize of greater than 8KB, and my personal recommendation has always been to use a blocksize of at least 16KB to run OpenACS. This will give you lztext fields of 24KB or so, at least - if you want to absolutely guarantee you can insert a 32KB textarea choose an even larger blocksize.
Rows in Postgres are variable length, so you don't have to worry about each row occupying a full block.
I've avoided putting in limit checks for inserts because version 7.1 of Postgres will have segmented, compressed long types (including text), which will remove the size limit altogether.