How to stop independent actions on multiple armatures from fighting with each other It's a little hard to explain, so I've created a video to accompany it.
I'm just trying to get the basics of animation actions in blender, but am coming across some nasty problems, that aren't expected (to me).

When I have multiple armatures under one action (move up), and then try to create a second action (move down), it seems that just selecting an armature changes the action in the action view, and even when the channels are locked, the first action is destroyed after I've finished moving the bones for the move-down action. It's as if multiple armatures aren't supported or conflict if used in two actions sharing the same timings/keyframes?

(not shown in the video) It seems that I can get the first action working again simply by selecting the bone and chosing 'move up' again in the animation window.

See the video - what am I doing wrong? When I lock a channel I MEAN LOCK.
https://www.youtube.com/watch?v=GV_ML0Cvaik&amp;feature=youtu.be

Here's the original blend file
badactions.blend

NOTE1: This is a simplistic example. My actual model was a huge steampunk cross bow, launching ships into space, that had many moving parts to draw and release the bolt &amp; position ships. 
NOTE2: I can fix the end result by selecting the cube armature again and chosing the 'move up' action in the animation window - that seems to alter the animation data and fix it - but that's totally ridiculous to do.

What I'm trying to achieve is really easy and obvious - yet blender seems to make it hard.

What I'm looking for is instruction into how to build animations without having to constantly double check that actions I've already finished haven't been broken by new actions.
Each armature has its own reference to an Action datablock.  While it is possible for each armature to refer to an identical action (because datablocks are reusable) this would usually only be used when both armature objects use the same armature data (or use compatible armature data with compatible bone names).

It is unclear what you are trying to accomplish and why this behavior is a problem for you.

Just understand that it is inaccurate to say "I have multiple armatures under one action ".  What blender can do is have multiple armature objects which use the same action.  If you want an object to act differently than another object, they need to have different action datablocks in their animation_data.action field