I added a downloadBlob method to DownloadManager to cover the case of URL-less BLOBs. It  seems cleaner and prevents unnecessary errors in case of a fallback to the downloadUrl method.
If it's OK with you, your other comments are also addressed.