Scheduled messages have a separate identity
schedule_date places a message in a chat’s schedule queue. Updates later associate it with the delivered message; do not assume the IDs are identical. Cancellation, rescheduling and immediate sending are separate actions. Special modes such as sending when someone comes online have scope and privacy conditions.
A chat can have several pinned messages
The latest pinned-message ID in profile information is not a complete list. Use the pinned search filter for the full set. Distinguish pinning, unpinning and one-sided pinning in a private chat.
Interface recommendations
Show pending, sent and cancelled states separately. Give each user action a stable operation identity and reconcile timeouts before repeating it. Preserve reading position in pinned-message navigation. Unpinning updates the pin list; it must not delete the underlying message.