Have a look here for why integration continues, even though extraction fails.
In your case, by default it would be up to your validators to ensure there is enough space on disk to actually perform extraction. If they either can't or they produce a false positive, one alternative or fallback is for your extractor(s) to communicate to your integrator(s) that something bad enough happened for them to stop what they are doing.
def process(self, instance):
data = instance.context.data
data["criticalError"] = "Scene file export failed"
def process(self, context):
if "criticalError" in context.data:
# otherwise go on as usual
Now your integrator will fail (and appear red) if extraction encountered a bad enough problem.