MySQL siempre reserva la cantidad máxima para un UTF8 campo que es de 4 bytes por lo que con 255 + 255 con su DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; superas el límite máximo de longitud de clave de 767.
Solo puede reducir la longitud del varchar único o no usar una clave compuesta.