DEFAULT_MAX_PENDING_MESSAGES
Default cap on incomplete messages one Reassembler holds before it evicts the eldest.
msgId is peer-chosen, so without a cap a peer that opens messages and never finishes them grows the table for as long as the endpoint stays connected.
16 is arbitrary. It is not derived from the protocol, from a measured working set, or from any other bound in the codebase. It is a starting point: kuilt's own sender emits a message's chunks contiguously, so the honest working set is roughly one incomplete message per concurrent broadcast/sendTo caller. Crossing it costs the eldest single message (logged at debug), never the table — see Reassembler.startAssembly — and it is a constructor parameter for a consumer that needs a different trade.