untrusted comment: verify with openbsd-68-base.pub
RWQZj25CSG5R2kuNsF98wMzwygBk62Sbp4TEowZI463ll0APctWzOpbaujGnEPbmbh35fwnlzFyso6UGQE8k2Fn/7Wn2/4adAAI=

OpenBSD 6.8 errata 009, December 8, 2020:

Process exit in multithreaded programs could result in the wrong exit
code being reported.

Apply by doing:
   signify -Vep /etc/signify/openbsd-68-base.pub -x 009_exit.patch.sig \
       -m - | (cd /usr/src && patch -p0)

And then rebuild and install a new kernel:
   KK=`sysctl -n kern.osversion | cut -d# -f1`
   cd /usr/src/sys/arch/`machine`/compile/$KK
   make obj
   make config
   make
   make install

Index: sys/kern/kern_exit.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_exit.c,v
retrieving revision 1.188
diff -u -p -r1.188 kern_exit.c
--- sys/kern/kern_exit.c        18 Mar 2020 15:48:21 -0000      1.188
+++ sys/kern/kern_exit.c        17 Nov 2020 09:12:14 -0000
@@ -140,7 +140,7 @@ exit1(struct proc *p, int xexit, int xsi
                       single_thread_check(p, 0);
       }

-       if (flags == EXIT_NORMAL) {
+       if (flags == EXIT_NORMAL && !(pr->ps_flags & PS_EXITING)) {
               if (pr->ps_pid == 1)
                       panic("init died (signal %d, exit %d)", xsig, xexit);