tcp_io: FIN/close через write_queue, отладка всех этапов закрытия
- tcp_io.h/c: push_fin/push_close через очередь отправки
Кодирование: dgram=NULL→close, len=0+dgram!=NULL→FIN (sentinel)
FIN: shutdown(SHUT_WR), стоп чтения, on_fin_sent
CLOSE: close сокета, on_closed
read_cb: отбрасывание входящих после fin_sent
guard wq_fetch: error||closed (не fin)
- tcp_proxy_server: адаптация handle_fin→push_fin, handle_close→push_close
read_queue_drain_cb: discard при fin_sent
DEBUG_INFO на всех точках закрытия
- tcp_proxy_client: send_fin, handle_fin — DEBUG_INFO
- test_tcp_io: +6 тестов (push_fin, push_close, ordering, double-push, fin+close)