BGE register new Action
You can't create actions with the BGE. Animations needs to be present in the blend, a linked blend, or loaded blend (via LibLoad).

Background

You used bpy - which is the API to Blender. Be aware Blender is only available when you run your game session embedded inside Blender. Typically you do not deliver Blender with your game.

When you run the game session embedded inside Blender creating an action, it is only present in Blender (-> bpy is talking with Blender, not with the BGE). The running game session will not know about it. Any change made by Blender will not be recognized by the game session, as everything is loaded already.

For better imagination:

Imagine your game session is a car the player is driving. 
The BlenderPlayer is the factory that creates a new car from a blue print.
The .blend file is the blue print. 
Blender is the construction office that created the blue prints.

When you modify the blue prints while you are driving the car the car will not change. You will need to create a new car from the modified blue prints.

So you stop the car you are sitting in. Then you let the factory create a new car and start that one.

Back to the BGE: You stop your game session and start a new one. Then you see the modifications.