Meteor: iron-router => waitOn sin suscribirse

Quiero que aparezca una plantilla de carga antes de que el sitio tenga todos los datos para representar.

Y después de que el Método del servidor me proporcione los Datos (de una API [asíncrona]) a través de Meteor.call, quiero cargar el diseño correcto.

Intenté muchas formas encontradas en Google que describen un problema similar pero no exactamente el mismo. Incluyendo la forma de definir una función con un controlador listo, tampoco funciona. No puedo hacerlo funcionar.

no quiero usar Colecciones porque estos son Datos específicos del usuario (creo que esto no es eficiente para hacer una colección para cada usuario [no hay usuarios registrados], o me pierdo algo) ¿Es esto posible?

Aquí mi código. La consola registra 2 antes de 1.

Router.route('/search/:term',{
    name: 'search',
    loadingTemplate: 'loading',
    waitOn : function(){
        var term = this.params.term;
        //i think here has be something differnet either with return subscribe or function with ready-handle
        Meteor.call('search',term,function(err, response) {
            Session.set('shops', response);
            console.log(1);
        });
    },
    action : function(){
        console.log(2);
        this.render();
    }
});

Template.search.helpers(
    {
        "shops" : function(){
            return Session.get('shops');
        }
    }
);

El método del lado del servidor devuelve una matriz.

Gracias por la ayuda

Respuestas a la pregunta(2)

Su respuesta a la pregunta