In the german Duden you can't find an entry in the etymology. I found a similar question. The answer desrcibes how
das Aufheben der Tafel is having the same meaning like
das Beenden des Essens. With
aufheben der Tafel it is meant to pick up the tabletop and carry it away and with this action you cancel or finish the lunchtime. Having a carryable tabletop is comming from medieval times. So the entire dish and lunch is served in one action.
aufheben in the meaning of to cancel, is often used for cancellation of a sentence. To assign a curse to someone can be translated to
jemanden mit einem Fluch belegen so you
make him carry the weight of the curse or you
lay the weight of the curse down on the person. In this way it also makes sense to pick up the weight of the curse again.
Einen Fluch aufheben is also translated to recall the curse. So first you let the person carry the weight/burden of something and pick up the weight/burden again in order to cancel the sentence. The example you stated in your question also implies that the person who has to complete a task or fulfill a agreement doesn't want to do so. Therefore the person is carrying a burden around and will be relieved from the burden after doing whatever the person is supposed to do or the other person who forced the agreement will recall it. So in this situation
aufheben is used as a synonym for
entlasten (engl. relieve). So the party that was affected negativly by some changes is becoming its freedom back and is therefore
entlastet because something or someone
picked up the weight/burden again.
etwas aufheben with the meaning of
to cancel always implies it's easier for the opponent party to cancel the agreement, than it is for the other party to fulfill it. For example the king can just order to unblock a blocked road again, while you would have to put in a lot of efford to pass the road that the king blocked before. To be able to cancel/aufheben something, it always implies the opponent party has a higher rank or you are in debt.