EDIT: Moved the hack to the handlePreSolve instead and added a handler for the onJump Signal to reset the _onGround variable as without it the player could spam the jump button and fly in some cases, not perfect but it at least limits them to a rare double jump.
Well played about this morning with this and I can detect when it happens but not resolve the unsticking in a way that feels not like a hack.
The cleanest way to resolve it but still a hack IMO was to override the 'handlePreSolve(.)' in the Hero Class with:
/* In Constructor */
this.postContactCallEnabled = true;
/* End */
private function heroJumping():void
this._onGround = false;
override public function handlePostSolve(contact:b2Contact, impulse:b2ContactImpulse):void
var collider:IBox2DPhysicsObject = Box2DUtils.CollisionGetOther(this, contact);
if(collider is MovingPlatform)
this._onGround = true;
This tricked CE to thinking the Hero was on ground and to allow the player to jump. Though to note this will set the player to be 'onGround' even whilst mid jump and passing through a platform (The MovingPlatform you are jumping on) but currently in my scenario that doesn't yet seem to have an adverse affect.
What adverse affects it will have in other scenarios I've yet to discover, but for now its working for my game without forcing me to glitch force move the hero on it's y axis which makes the game feel clunky.