- consumer.Run получил onReady: /ready теперь false при ошибке ReceiveMessage (раньше флаг consumer'а выставлялся до старта и не отражал SQS). - main.go: wg.Wait заменён на waitWithTimeout (shutdownGrace=15с) — зависшую подсистему не ждём бесконечно. - iotpg.Close идемпотентен (sync.Once) — повторный вызов не паникует.