I don't think there is such an extended DownloadManager, but maybe there is a library that has potential to have features like this :
some basic features:
• retry on failure
• Wait untill connected
• Return all downloads
• Pause the DownloadManager
DownloadTask:
• add listener for finished
• Set priority for a particular download
• Allow to cancel downloads
• get download-percentage based upon file-size (if given)
• Resume download
Possibly with parallelism:
• Max of total parallel sessions.
• Max parallel sessions to a server.
• Delay between requests for a particular server.
bonus:
• Allow to download (particular tasks) only with WIFI/LAN
possibly with storage:
• Maximum storageSize
• retrieve from disk or download
possibly as some cache:
• Invalidate after particular time
• manual invalidation
Not everything will probably be needed for every application, but this is (I think) what most applications that are downloading bigger files are duplicating.