I dug a little into the supposed wireguard protocol traffic, and tcpdump'ed on the wire interface on both ends.
So, what's supposed to happen, once I run traffic from the netbsd box (192.168.0.102) to the linux peer (192.168.0.1), is encrypted UDP traffic flowing to 1.2.3.4:45340, to initiate the handshake between both hosts.
What I see is UDP packets going from netbsd to the linux box:
# tcpdump -i vioif0 host 1.2.3.4
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vioif0, link-type EN10MB (Ethernet), capture size 262144 bytes
00:50:57.195727 IP myx.crabdance.com.45340 > 1.2.3.4.45340: UDP, length 148
00:51:02.697201 IP myx.crabdance.com.45340 > 1.2.3.4.45340: UDP, length 148
00:51:08.207179 IP myx.crabdance.com.45340 > 1.2.3.4.45340: UDP, length 148
and I also see them arriving:
linux# tcpdump -i any host 85.235.67.103
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
00:52:08.812794 IP myx.crabdance.com.45340 > 1.2.3.4.45340: UDP, length 148
00:52:14.322555 IP myx.crabdance.com.45340 > 1.2.3.4.45340: UDP, length 148
but nothing ever flows back.
If I try to initiate the other way around and ping from linux to netbsd, I see UDP packets going the other way but still no answers.
So my guess is the wireguard implementations are incompatible and either box just discards the other ones packets.