Why do we need to wait before resolving the deffered promise?

Because the check is performed after the suggestions are rendered.
https://github.com/geoadmin/mf-geoadmin3/blob/gjn_seo_swisssearch/src/components/search/SearchDirective.js#L587