There isn't much MAUI specific on this - your asynchronicity will all happen at the base .Net / C# level.
Exact details will depend on your specific scenario: if your task is serialized or parallelizable, if it's I/O bound or CPU bound, how your application is laid out, etc.
To get started, look at the Asynchronous programming with async and await docs in the C# programming guide. It sounds like you have an I/O bound task that will work well with the Task-based Asynchronous Pattern (TAP).
When the task complete you can fire a completion event to let some other part of the system know that it's done. Again, specific details here will be very application specific.
Since it sounds like this is part of your data model initialization, you might trigger the initialization task when you create the model and then raise PropertyChanged or custom events when the data is available, depending on how the app expects to use this data. You may make different choices if the app just need to let the user know that the files are created than if the app needs to expose the data in a View once its available.