Avoid returning uninitialized packet_id on ACLK publish failure (#22504)
* aclk: return packet_id=0 on publish failure aclk_send_bin_message_subtopic_pid returned an uninitialized packet_id when mqtt_wss_publish5 failed. aclk_graceful_disconnect stores that value in mqtt_shutdown_msg_id and the PUBACK handler matches incoming packet_ids against it, so a garbage match could falsely declare the shutdown ack'd and trigger an early graceful exit. Initialize packet_id to 0 (the existing "no message" sentinel matching mqtt_shutdown_msg_id's -1 init and >0 check) and force it back to 0 on any non-OK return from mqtt_wss_publish5. Defensive init also added to aclk_send_message_with_bin_payload for the same pattern. * aclk: move mqtt_wss_publish5 call after logging to avoid use after free * aclk: ensure msg_free contract holds on non-OK return from message generator * aclk: clear packet_id and ensure msg_free contract on non-OK return from mqtt_ng_generate_publish * aclk: clarify msg_free logic to ensure publish-layer contract on non-OK returns * aclk: add null check for packet_id before assignment on failure rollback * aclk: reset packet_id to 0 on oversized message error path