Issue #384: an AC reported `climate.set_temperature`/`set_hvac_mode`/
`set_swing_mode` failing with "command failed for <href> after reconnect:
session operation timed out" across several hrefs.
smartthings-local retransmits every block of a GET (3 attempts) but sends
a POST exactly once, so a single dropped datagram is a write failure. Two
things made that likely and then unrecoverable:
- The write path never paced. RT-OCF drops requests that arrive inside
the rate-limit interval, and the reconnect retry is the worst case --
`_connect_session()` reads /oic/p, /oic/d and /oic/res immediately
before it, so the retry PUT lands milliseconds behind three GETs.
- Any exception, timeout included, was read as session death: close the
session, downgrade OBSERVE to poll, pause, re-handshake, one more
single-shot PUT. The poll path already reads a TimeoutError the other
way (`_defer_reconnect_for`).
Pace before both POST sites, and retry a timed-out write once on the
session in hand before spending a reconnect on it. The reconnect ladder
is unchanged past that point; it just moves to a helper.