fix(connection): respect startup grace period in timeout detection
Previously, connections would be incorrectly marked as timed out during
the initial registration phase, causing false 'Failed to establish any
initial connections' or 'no available connections' errors. This fix
ensures that connections within the startup grace period (1.5s) are not
considered timed out, matching the C implementation behavior while
maintaining proper timeout detection for established connections that
lose connectivity.
Changes:
- Modified is_timed_out() to check startup_grace_deadline_ms for initial connections
- Updated mark_for_recovery() to immediately mark connections as timed out (matching C behavior of setting last_rcvd = 1)
- All tests pass with the new logic