unfortunately, have the implement your own cleanup scripts after a service fails to update.
there are
- temporary service_date and portal items
- also the original service definition json gets updated with the additional new portal item ids as well and json attribute derived="True". so each time a service update fails, if you look at the original service there is extra map service portal item references.