Copiar al portapapeles con document.execCommand ('copiar') falla con textos grandes

Estoy usando un área de texto oculto para poner algo de texto, seleccionarlo y luego usar document.execCommand para copiarlo en el portapapeles. Esto generalmente funciona pero falla (devuelve falso) cuando el texto es grande. En Chrome v55, parece fallar alrededor de 180K caracteres.

¿Existe un límite en la cantidad de datos que se pueden copiar de esta manera? Ctrl + C normal no parece estar sujeto a las mismas limitaciones.

nota: alguien marcó esto como un posible duplicado de¿Document.execCommand ('copy') tiene una limitación de tamaño?. Puede ser una pregunta similar, pero esa fue etiquetada como un marco específico que no uso y tampoco fue respondida. Creo que mi pregunta es más general y aún relevante.

Adjunto el código para referencia.

      function copyTextToClipboard(text) {
        var textArea = document.createElement('textarea');
        textArea.style.position = 'fixed';
        textArea.style.top = 0;
        textArea.style.left = 0;
        textArea.style.width = '2em';
        textArea.style.height = '2em';
        textArea.style.padding = 0;
        textArea.style.border = 'none';
        textArea.style.outline = 'none';
        textArea.style.boxShadow = 'none';
        textArea.style.background = 'transparent';
        textArea.value = text;
        document.body.appendChild(textArea);
        textArea.select();
        try {
          var successful = document.execCommand('copy');
          var msg = successful ? 'successful' : 'unsuccessful';
          console.log('Copying text command was ' + msg);
        } catch (err) {
          console.log('Oops, unable to copy');
        }
        document.body.removeChild(textArea);
      }