Если чистить ресурсы необязательно синхронизированно с другим кодом, то можно одним invokeOnCompletion перебиться, без синхронизации Deferred-ом.
Сложность в том, что с этим "сервисом" работает не одна джоба, а вешать такой колбек на корневую мне не нравится - в области видимости "корневой" джобы нету ссылок на "сервис".