Found a minor flaw in your code. Loaded up the project and started the level, then ejected the player and started dragging the red ball around until I hit a wall. This triggered a nullptr exception.
Tracking any type of actor that could go passed player restrictive boundaries could be a problem
In pathfinder.cpp I added in a modification to counteract this problem, basically the EndNode would be null triggering a cascade of errors. In the case of it not being viable, I set the EndNode to the StartNode and the path finding resolves correctly once the obstructions are gone.