Search API autocomplete group suggestions
One way to do this requires you to get a bit javaScript-ey

As normal Drupal autocomplete uses "https://jqueryui.com/autocomplete/"

or a wrapper of it see "core/misc/autocomplete.js"

You can do is take 100% control over it.
you can add JS to the view and optionally create a controller to handle better  "label" : "value"

$("#the-id-of-your-search").autocomplete({
      source: function (request, response) {
        var url = '/the-ajax-end-point'; 
       // or custom Controller returning JasonResponse() :)

       // or custom view with rest Response :)
        $.ajax({
          dataType: "json",
          type : 'Get',
          data: {
            q: request.term
          },
          url: url,
          success: function(data) {
            // play with grouping the data here.
            response( data );
          },
          error: function(data) {
            // do some thing here.
          }
        });
      },
      select: makeSelectAwesome,
      minLength: 3,
    });

   function makeSelectAwesome(e, ui) {
    if (ui &amp;&amp; e) {
      if (ui.item) {
        // ui.item.value, ui.item.label
        $("#the-id-of-your-search").val(ui.item.label);
        // in the case of your own controller
        // you can return a whole crap load more stuff
        // Then just label / value 
        // Example var data = JSON.parse(ui.item.value);
      } 
    }
   }

       // php excerpt for controller ideas
       $request = $this-&gt;requestStack-&gt;getCurrentRequest();
       $query = $request-&gt;get('q');
       /// build a result.
       $value = [
         'type' =&gt; $node-&gt;getType(),
         'image_url' =&gt; $node-&gt;field_image ... 
         'extra_data_to_make_ui_awesome' =&gt; []
       ];

       $results[] = [
         'value' =&gt; json_encode($value, TRUE),
         'label' =&gt; $node-&gt;getTitle(),
       ];
       return new JsonResponse($results, 200);


then i guess you just live the dream.