Add MULTIPLE actions to an armature
If calling key_frame_insert directly from a bone, the easy way, and it always writes to an existing action unless it needs to create it, then the answer is to just manipulate the facts on the ground.

In the simple 2nd example, you can simply assign the armature's current action to None, ob.animation_data.action = None.  These examples only have just one bone &amp; frame though.  When I place that in the real code, there is also an empty my name.001 created. If I try adding ob.animation_data.action = actionto the first example, the same empty action is also created in real code.

Though that empty action would get removed on save / reload, it looks half-assed.  With some help from here, if you un-link the action, and rename after the new keyframes are added, you get one action every time.

import bpy
from mathutils import Vector

ob = bpy.context.object
if ob.animation_data and ob.animation_data.action:
    # save last action, so it does not get removed without user doing something
    ob.animation_data.action.use_fake_user = True

    priorAreaType = bpy.context.area.type
    bpy.context.area.type = 'DOPESHEET_EDITOR'
    bpy.context.space_data.mode = 'ACTION'
    bpy.ops.action.unlink()
    bpy.context.area.type = priorAreaType

bone = ob.pose.bones['K2-Root']
value = Vector((1, 1, 2))
bone.location = value
bone.keyframe_insert('location', frame = 1)

ob.animation_data.action.name = 'my name'