Holding a database lock across a network read
Sharing one SQLite store across the P2P listener and discovery loop would hold a lock across a blocking peer read; separate connections plus busy_timeout avoid the stall.
It could not have worked
A race, an ordering, one column holding two things. The shape ruled it out before the code ran.
The P2P listener and the discovery loop each got their own dedicated SQLite connection rather than sharing one store behind a mutex with the IPC thread. Sharing would have meant potentially holding a lock across a blocking read from a peer, which is a stall waiting to happen against an unreliable network. The cost is more open file handles — six at boot — and it needed a busy_timeout on the connection to make multi-connection concurrency safe.