The underlying system service will throttle your requests if you send too many. Scheduling 30,000 individual HTTP requests is neither good for your web server nor system performance. I'd recommend packaging what you need to download into a larger combined compressed file, then unpack it on device.
Background Assets was created to support downloading large files in the background before your app is launched, or after it is updated. So that your users are not having to wait for these assets to download when they launch your app. It was not created to download thousands of small individual files.
The throttle ratio is subject to change, currently we have it set at 30.
If you try to schedule more than this amount, you'll receive an error back from the API.
/* BAErrorCodeDownloadQueueFull */
"The requested download could not be scheduled because the download queue is full.";
To answer the second part of your question, there is a priority
argument on BAURLDownload
where you can specify where your scheduled download should be placed into the download queue.
https://developer.apple.com/documentation/backgroundassets/baurldownload/4027492-init