Así sería como yo dejaría el código, pero es cierto, para aumentar la velocidad, se depende de lo que le sumes a et, y como te dijo maycolalvarez, si quieres que se aumente la velocidad esa es la única opción, por que incluso le puse como tiempo de demora al setInterval solo cero (0), y seguía igual de lento.
    
Código Javascript
:
Ver original- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
- <html xmlns="http://www.w3.org/1999/xhtml"> 
- <head> 
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
- <title>Reto 2</title> 
-   
- <script type="text/javascript"> 
- window.onload = function () { 
-     document.getElementById("r1").onclick = enviarMensaje; 
-     document.getElementById("r2").onclick = enviarMensaje; 
- } 
-   
- function enviarMensaje (evt) { 
-     if (evt.target.id == "r1") { 
-         setInterval(mensaje,6, "capa2" ); 
-     } else { 
-         setInterval(mensaje,6, "capa3"); 
-     } 
- } 
-   
- function mensaje(a){ 
-     var et = parseInt(document.getElementById(a).style.height); 
-     et += 3;     
-     document.getElementById(a).style.height = et+"px"; 
- } 
- </script> 
- </head> 
-   
- <body> 
- <input type="button" id="r1" value="Recoger" /> 
- <input type="button" id="r2" value="Recoger" /> 
- <div id="capa2" style="width:720px; height:305px; background-color: #CC0000; position:relative;"></div> 
- <div id="capa3" style="width:720px; height:305px; background-color: #CCFF00; position:relative;"></div> 
-   
- </body> 
- </html> 
Si no estás contento con mi opción, por favor explica más detalladamente que es lo que quieres lograr. 
Saludos.