The character limits are controlled by the Berkeley database, which is used for the SSdb database in Spectrum. The database limits for the SSdb are controlled by what can fit into the memory space to be returned to the application. Some of the Berkeley database interfaces may return both the key and data items to the application. So, the key/data pair must fit simultaneously into memory.
Therefore, there is not a hard-set character length for the custom attributes. Essentially the character length is unlimited, up to the point where the system, application, and Berkeley database can handle it. For the current release of Spectrum 10.2.x, the most upper limit is 4GB of text, which is not recommended. In general, you should not be as concerned with the character length of the text, but more concerned with the file size, and memory size of the overall text.
CA Sustaining Engineering recommends not trying to store huge text strings across the entire database, since this will drive up the memory usage of the SpectroSERVER. For example, if the text string is 10k in size, and it is displayed against 100,000 models (10k string * 100k models), this would at the very least consume an extra 1GB of memory. This is more problematic for the older 32-bit SpectroSERVERs than it is for the 64-bit SpectroSERVERs, but should be taken into consideration during your customization planning.