It would be easier to do things like this in Tables than Survey. If you make a landing page in Tables that the user will be directed to when you come back from the user finalizing a Survey you can easily update the value to done on return to Tables.
Since finalize is at the end of the Survey framework it will be more a challenge to insert the code to run at the correct time.
You could try to use isFinalized() in a calculates, though I am not sure if Surevey recalculates after a user finalizes but might be worth a try though. Here is a list of JS functions added by Survey ODK-X XLSX Converter Reference — ODK-X Docs.
Another possible option to update a variable after finalization within the Survey frameworkI would also take a look at overriding the custom initialize worksheet. You maybe able to add an assign after type finalize: Using ODK-X XLSX Converter — ODK-X Docs
You may want to read this post to understand more about the “initial” worksheet.
Let us know what you find out.