You seem to have answered the question for yourself already, but here are some key points that you may take into consideration:
Task Priority is not the same as Task Urgency. Some urgent, but low-priority, tasks may have tight deadlines, but they can (and, sometimes, must) be ignored if other, higher-priority, tasks are under risk. How to prioritize them is a subject of mutual agreement.
Upon receiving a more urgent task, you have to re-negotiate all affected tasks that already sit in your schedule, you already did it.
What you have not done is getting a formal/doable confirmation of your mutual agreement. Your changed schedule must be reflected in your time/task planner:
- A new task should appear there, with its priority and time frame;
- All the affected tasks have to be adjusted accordingly: e.g., if you decided that "it's okey" the "old" task to end a day later, it must be reflected;
- Also, keep in mind that changed milestone is not the only option. You may have agreed that the "old" task will keep its end date, but the scope reduces;
- Also, don't forget that a change in your schedule may trigger changes in someone else's schedules as well. This must be also reflected somehow.
If someone tends to change their mind often, a more formal approach may appear the only way for an effective team collaboration. In an ideal world, it would be great if those who set the new task have adjusted the time tracker by themselves, but in reality, CxO people simply don't have time to do that.
They also may order you to do something verbally (e.g., not written). In such situations, I found it useful to write a short follow-up email, like this:
Dear CxO,
According to our recent phone conversation, I have added a Task X to my schedule (end date is tomorrow).
I have also changed the end date of task Y to {a day following the prior deadline}.
This would take only a couple of minutes, but eliminate any possible misunderstanding.
If a CxO comes to you tomorrow and demands the old task to be done earlier, things will be simplified: they simply ask to change the timeline of an existing task, without any reference to a "new" task that have been added recently. You will be able to respond, "our timeline for this task is {new date}, according to our recent conversation. To change the deadline, we have to re-negotiate the scope/schedule again. Which functionality would you like to remove?"
Summarizing all above:
- Track your scheduled tasks in a task tracker;
- Adjust them upon each mutually negotiated changes occur;
- Write follow-ups to make sure everyone is on the same page;