T32054 can be fixed by only initialize m_starttime with KX_GetActiveEngine()->GetFrameTime() - kxscene->getSuspendedDelta() instead of only KX_GetActiveEngine()->GetFrameTime(). With this way we remove a check in Update().
The issue in T46650 is that action time are not managed when an armature (child of armature) is culled, to manage the time but disallow deformer update a new argument is added for KX_GameObject::UpdateActionManager(float curtime, bool apply). When "aplly" is to false we only manage time and action desactivation. But a new issue is introduced : when the action was fully played for a culled armature and that is not culled in a next frame the action will be not applied to the armature. Indeed BL_Action::Update do nothing when m_done is to true, we must allow at least one update to set the action tranform. The new attribute "m_applied" solves this. This attribute show if the action was applied to the object in a previous update, and in case of the issue it force an update because m_applied will be always to false when the object is culled.
Example file :
Set view to camera, press O to open the doors and to rotate the camera. press C to un-rotate camera.