Moving Origin and/or Pivot point during animation

Sorry for the NOOB question.

I’m having issues figuring out how to move a rotation axis during animation. Starting with the default scene, how do I:

  1. set a LocRotScale keyframe for the box
  2. move to frame 20 and slide the box some distance
  3. set another keyframe, (and now the tricky part)
  4. change to another view and set the rotation point to a bottom corner
  5. rotate the box 90deg
  6. repeat the steps.
    This is like sliding a box across a floor, having it tip over around a bottom edge, sliding a different direction, tipping again, etc.

The problem is that if I use “set origin to 3d cursor”, the box jumps to a new location for all of the previous keyframes. I’m thinking it’s some steps involving “set geometry to origin” or “changing the pivot point” (although this doesn’t “follow” the box) or something I don’t understand (maybe a different type of keyframe). The “follow” the box is important because if the box is sliding fast enough then I have to animate the pivot point in XZ as it flies through the air while continuing the rotation animation but the 3D cursor isn’t attached to the geometry.

I hope this makes sense but more importantly I’m hoping that somebody can clue me in.