A bit of progress: in a kernel built with George Koehler's suggested replacement of isync by sync and with uncommented GENERIC.MP option MP_LOCKDEBUG option WITNESS and (getting rid of any dependence on Go) generating load by running make -j64 build in /usr/src, I fairly quickly get a panic:
panic: acquiring blockable sleep lock with spinlock or critical section held (rwlock) kmmaplk Stopped at panic+0x134: ori r0,r0,0x0 TID PID UID PRFLAGS PFLAGS CPU COMMAND 484082 12380 21 0x18000003 0 7 cc 104407 11776 21 0x18000003 0 3 cc 182886 45104 21 0x18000003 0 6 cc 385115 79953 21 0x18000003 0 2 cc 158768 20484 0 0x14000 0x200 5 zerothread *413982 47818 0 0x14000 0x200 1 reaper panic+0x134 witness_checkorder+0x954 rw_enter_read+0x8c vm_map_lock_read_ln+0x38 uvmfault_lookup+0x114 uvm_fault_check+0x68 uvm_fault+0x12c trap+0x7a4 trapagain+0x4 --- trap (type 0x300) --- pmap_remove+0x120 uvm_unmap_kill_entry_withlock+0x1c0 uvm_map_teardown+0x184 uvmspace_free+0x70 uvm_exit+0x38 https://www.openbsd.org/ddb.html describes the minimum info required in bug reports. Insufficient info makes it difficult to find and fix bugs. ddb{1}> Rebooting and retrying, it dies with mtx_enter: 0x10e0470 lock spun out ddb{3}> __mp_lock_spin: 0x103e818 lock spun out