Easy way to make it work is align your enum with the ootb one, e.g. @Status = 1 means 'sent' in both definitions, and use the same field names, i.e. @Status.
If that's not possible, just diy the aggregates in a periodic workflow: scheduler -> query activity with counts and conditional sums (for sent: sum(iif(@status=1, 1, 0)) -> update nms:delivery. The ootb system will interfere with this, so turn it off by using a db trigger to set the @DIRTY field in nms:delivery to constant 0 for custom deliveries.