chore(hermes): p2p testing is pre publish (#725)
* fix: restore is_pre_publish_completed for P2P testing
The previous commit ff8b6d2d changed is_pre_publish_completed to require
at least one provider other than ourselves. This broke P2P testing because:
1. Publishing node announces itself as a DHT provider
2. Other nodes receive messages via gossipsub (PubSub)
3. But they don't automatically become DHT providers unless they fetch content
4. Publishing node waits indefinitely, causing HTTP timeouts (exit code 52)
This restores the original behavior where finding ourselves as a provider
is sufficient for DHT propagation verification, which matches the function's
documented contract: 'For P2P testing and small isolated networks, finding
ourselves as a provider is sufficient.'
Also updates the test case to expect true when only our peer is present.
Fixes: ff8b6d2d ("fix: correct is_pre_publish_completed to require other peers")
* fix: increase init-bootstrap wait time from 15s to 30s
The 15-second wait was insufficient for nodes to initialize and log
their peer IDs, causing init-bootstrap to fail intermittently.
Increasing to 30 seconds ensures reliable peer ID discovery during
first-time setup and after 'just clean'.
* docs: clarify is_pre_publish_completed behavior for P2P testing
Improved documentation to explain:
- The two conditions that return true (ourselves OR others as providers)
- Why finding only ourselves is sufficient in P2P testing environments
- The distinction between gossipsub propagation vs DHT provider announcements
This makes the function's behavior and reasoning more explicit.