After our previous discussion, I made sure to pass the `:dont-save t`
parameter to all calls to `sb-ext:finalize`. However, I have noticed
that this parameter does not have the desired effect
This is a race between the GC deciding to trigger a finalizer (placing it on the pending execution queue) and deleting the dont-save finalizers. Theoretically your example could run that finalizer before creating the "test" executable because it knows that the finalized object is dead; but unfortunately the system is not in a state to run actions at that point. I think the best we can do is discard the finalizer so that's what I'll make it do.
Have you found a case where :dont-save does not behave as expected but it's NOT related to a subtle timing issue?
I also think there's a bug about running a finalizer more than once, but I think it's unrelated. I do not have a reproducer. I only noticed it when your example printed "I'm finalized" twice in a row.