What we do is only updating the MxModel reflection if you do an action where the model reflection is used. So when a user wants to do an Excel import for instance we trigger this ASU flow. Because indeed doing it each time the model starts takes to much time.
Or maybe an scheduled event with the microflow in it. And then trigger it to your liking.
Otherwise you should indeed compare the last sync date with the changed date of the objects in the modelreflection, like the MxObjectType entity.
You can store it in one object and keep comparing it every time.
That way you can trigger it if the sync date is older than the changed date