en la forma que lo estas haciendo, las variables se transforman a string, por ello te devuelve [object HTMLDivElement]. la forma mas facil es creando una funcion anonima para el primer argumento de setTimeout. dentro de esta funcion invocas la funcion con los parametros necesarios.
Código:
setTimeout(function(){
// aqui invocas tu funcion con los parametros;
}, 1);