checkquotas on large block device is slow (and don't show progress and sometimes fails) and you usualy don't need to scan/calculate all the files. If we could create empty/skeleton aquota.user and use chown to change ownership to somebody else, then change it back we could selectively calculate quota usage.
I've tried to create skeleton aquota.user on other empty block device and copying it but quota did not work, it always said
Disk quotas for user …. (uid 33702): none
How to create skeleton aquota.user? If there is no way to do it then it is a feature request.
I agree quotacheck(8) program takes some time, it can certainly show a progress bar if you ask for it (-v). Regarding the failure: That shouldn't happen so I'm happy to fix it if you provide more details.
I kind of fail to see how you could avoid scanning all files - do you mean you could know some parts of the filesystem didn't change and know how much each user uses there? And then you would just compute quota usage in the rest of the filesystem and add to the precomputed use? That seems a bit fragile to me…