This is more or less what I had, my problem was that in order to get the player to stop following the path and do the "chasing stuff", it can't be a child of the original pathfollow node (unless I'm missing something).
My solution to this in the end was to remove the enemy node as a child of the follow2d node, reparent it to a node higher up in the tree, do the chase stuff
Then when it's lost track of the player, as you suggested, move the enemy back to the lastposition it was at while on the path, re-add it as a child to the follow2d node, set the offset of the follow2d node to the lastoffset it was at before chasing the player, and then reset the enemy to position(0,0) in order to make sure it was following the path exactly.
If anyone's got insight into why I might be doing this a bad way, I'm all ears. removing and readding the enemy as a child seems wonky...