I had a chat with Jim Bosch about this and we came to two conclusions.
First, the correct exception for the task to raise is RepeatableQuantumError. That will signal to the workflow system that if it tries to run this task again with the same inputs it will get the same result (a missing visit summary).
Second, the fundamental issue is that upstream if single frame processing (the singleFrame pipeline subset) fails in some way in isr/characterizeImage/calibrate then you cannot just restart with the coaddition subset. There are a bunch more tasks in the singleFrame subset including consolidateSourceTable, consolidateVisitSummary, makeCcdVisitTable, and makeVisitTable that need to be run because while they may not be direct inputs to the coaddition (thus allowing coaddition to continue), they are inputs to map making/QA/reporting/etc. I'm not sure how to enforce this, but I believe this is what can happen to lead to unhappy downstream tasks.
I'm a bit worried I steered you in the wrong direction by talking about possibilities - if this raises NoWorkFound, it will be impossible to ever run it on partial focal planes, even when that's what the user wants to do. I would at least add a doRequireFullVisits config option or similar to control whether this check happens.