I agree, if the indexing is already being performed by the NAS it would be most efficient for Windows to just query that index.
Synology has a File API pdf where the Search endpoint is mentioned, but it is only listed as searching filenames. As the DS File app on Android is able to search within content I wonder if either the search API actually does search content or if DS File is using a different endpoint. Finding the correct endpoint could allow writing a Windows Search provider or a Windows shell extension to make the appropriate Synology calls and return results. However, if it was that easy I'd expect it'd already be done or maybe there's not much interest in addressing this feature gap between Windows clients and Synology NAS units?
Since you're writing in C#, I assume this is for a Windows platform. You can actually utilize the built in indexing that Windows has for searching.
I last used this a few years ago, and I remember having a hard time finding good code samples, but it worked well when I actually figured it out.
As for the UI, I like to use a lot of Queues to send data between threads. Run your search code in a thread, and every time you get a new result send it to a Queue that it read by your UI thread. Your UI thread can then update the list to be displayed.