@kevin-brown. The documentation for formatResult states:
<pre>The implementation may choose to append elements directly to the provided container object, or return a single value and have it automatically appended.</pre>.

So I should check which one is the case before doing...
<pre><code>
      label = $(label); //label is now a jQueryObject
       formatted = opts.formatResult(result, label, query, self.opts.escapeMarkup);
       if (formatted !== undefined)      //formatted: Is it a jQuery object or a string?
           label.append += formatted;   //now label is a jQuery.
</code></pre>