Running sequence of action getting cut off half way

I am having an issue where occasionally a running sequence of action would get cut off half way. I do not call any form of stopAction in my code. I’ve shortened my sequence to the below 2 actions, MoveTo and a callback after the MoveTo is done. This works like 99%+ of the time. But that remaining <1% is driving me nuts.

auto seq = Sequence::create(
	MoveTo::create(animateRate,
		TransformCoordinate::transformVec2(dest.first, dest.second)),
	CallFunc::create([]() {
		GameData::getInstance()->nextStep();
	}), 
	nullptr
);
this->getSprite()->runAction(seq);

I also have a bunch of SpriteFrame animation running on the same sprite at the same time, but that shouldn’t have any impact on this sequence. The nextStep() call checks if there are any other movements that need to be done and mutual recursively calls the above shown code.
I added CCLOG, it goes like this

next step updated to 1
next step activated
next step with 1 steps left
next step with 0 steps left
enabled input on finalmovementcleanup
next step updated to 1
next step activated
next step with 1 steps left
next step with 0 steps left
enabled input on finalmovementcleanup
next step updated to 1
next step activated
next step with 1 steps left

And it hangs here. Without calling nextStep().
I simply do not understand, under what circumstances could the sequence not get executed? (I have other code paths following this same technique and it also fails ~1% of the time)
Can someone please give me a hand here? Thanks in advance.

Does it work if you are not running the animation at the same time?