For the second group of users, keep a diff from the last update to the
current one for each package. The replacement of these would be a
little more complex to avoid losing delta updaters when multiple
updates to the same package happen in a very short period of time. You
would have to decide what is a reasonable amount of time to allow
people to apply updates. If updates to a package happen multiple times
within this time period, keep them all and let them get deleted as
that time window passes.
I am not sure what format of diffs presto can handle now, but it would
likely be better for the source and mirrors if the multiple
incremental updates were kept in the format A->B, B->C, C->D, etc.
instead of A->B, A->C, A->D, etc. That way, when a new update comes
out, only a new file has to be generated and mirrored. Presto would
have to know how to download and chain together a bunch of diffs to
bridge versions though.