This feels very "special case"; maybe we should have a separate service endpoint to declare that things are done?  It could throw in a "finished" stage change too, but ... dunno.  Maybe that is overblown.  It just feels like that special case is unneeded complexity in an otherwise simple endpoint.