'observe' en 'MutationObserver': el parámetro 1 no es del tipo 'Nodo'

Estoy creando una extensión de Chrome e intento incluir un pequeño texto al lado del botón ENVIAR del cuadro de redacción gMail.

Estoy usando un MutationObserver para saber cuándo aparece la ventana del cuadro de redacción. Estoy haciendo esto observando un elemento con claseno ya que el elemento de cuadro de composición se crea como hijo de este elemento (claseno)

Cuando el usuario hace clic en el botón de redacción y aparece la ventana del cuadro de redacción, coloco un elemento al lado del botón ENVIAR usando el.after() método. El nombre de la clase del botón ENVIAR es.gU.Up.

Estos son los nombres de clase reales de gMail y bastante raros también.

A continuación se muestra el código que estoy usando:

var composeObserver = new MutationObserver(function(mutations){ 
    mutations.forEach(function(mutation){
        mutation.addedNodes.forEach(function(node){
            $(".gU.Up").after("<td> <div> Hi </div> </td>");
        });
    });
});

var composeBox = document.querySelectorAll(".no")[2];
var config = {childList: true};
composeObserver.observe(composeBox,config);

El problema es que constantemente recibo el siguiente error:

Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'

¿Alguien puede ayudar? He intentado algunas cosas y también he visto otras respuestas aquí, pero todavía no puedo deshacerme de este error.

Aquí está mimanifest.json archivo:

{
    "manifest_version": 2,
    "name": "Gmail Extension",
    "version": "1.0",

    "browser_action": {
        "default_icon": "icon19.png",   
        "default_title": "Sales Analytics Sellulose"    
    },

    "background": {
        "scripts": ["eventPage.js"],
        "persistent": false
    },

    "content_scripts": [
    {
        "matches": ["https://mail.google.com/*"],
        "js": ["jquery-3.1.1.js", "insQ.min.js", "gmail_cs.js"]
    }
],

    "web_accessible_resources":[
        "compose_icon.png",
        "sellulosebar_icon.png" 
    ]
}

PD Ya he probado la biblioteca insertionquery, pero tiene algunas deficiencias. No me deja ser específico en cuanto a los cambios en el elemento específico. Todavía tengo que probar la biblioteca de resumen de mutaciones, pero como usa MutationObserver, pensé que el problema persistirá.

Agregado del comentario:
Es cierto que el selector no me está dando un nodo. Revisé la consola, está dando un objeto. También revisé la consola y está seleccionando el elemento apropiado que quiero que se observe.

Sin embargo, cuando agregoconsole.log para el elemento seleccionado, se muestra como indefinido. Lo que significa que probablemente tenga razón sobre la ejecución de código antes de que los nodos entren en existencia. ¿Me puede decir cómo asegurarse de que ocurra el retraso? funcionará 'setTimeout'? ¿Cómo funciona en caso de MutationObserver?

Respuestas a la pregunta(4)

Su respuesta a la pregunta