Fixes #33715.
When a second node is configured to publish ZMQ notifications on an address that is already bound by another process, the notifier currently fails to initialize but the node continues starting up. This leaves getzmqnotifications empty and only reports the bind failure in debug logs.
This changes ZMQ initialization so that an EADDRINUSE failure from zmq_bind is propagated as an init error. The behavior remains scoped to an address-in-use bind failure, preserving the existing behavior that invalid ZMQ arguments do not take down the node.
A functional test was added to interface_zmq.py that starts one node with -zmqpubrawblock=<address> and verifies that a second node configured with the same address fails during startup.
Tested with:
python3 -m py_compile test/functional/interface_zmq.pygit diff --checkcmake --build build-clang --target bitcoind -j 8python3 build-clang/test/functional/interface_zmq.py --configfile=build-clang/test/config.ini --cachedir=/private/tmp/bitcoin_zmq_cache_33715_a --tmpdir=/private/tmp/bitcoin_zmq_tmp_33715_b