Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
There are a number of options for doing this. I was looking into it and found that webform handles saving it's required fields on draft by setting the #validated flag to TRUE on all of its fields before submission so that they won't run through most of _form_validate so that the required fields don't throw an error. Then, it has it's own form validation that runs.
In my attempts to do the same thing, the field_api fields on this module were dying on submission. Anyway, that's one possible way of handling this problem, but it needs more investigation.