That's a potential substitution violation for failing to come inside the numbers and the snap should be held up long enough to see if B is going to change players to match up. The fact that a B player saw him and come over does not change the potential foul and it's not up to us to figure out if the B player "broke" the planned defensive call by moving over late. IMHO we should have a flag at the snap if we can't get the snap held up (iron cross signal). If we don't what do we do much later in the play when the flanker who the B player left to go cover the Illegal Substitution player goes for a TD? Do we flag it then since A got a clear advantage???
Yes, we should initiate the substitution 'process,' and not allow the ball to be snapped until B has had a reasonable amount of time to have a sub enter and get into position. Our guidance has always been that, once a substitution by A is obvious, then Team B has 3 seconds to BEGIN a a substitution, and then as much time as is reasonably needed to get a sub into position. If Team B isn't dawdling, and the play clock expires - delay by Team A. However, if Team B dawdles in completing their substitution, and the play clock expires because we are still preventing the snap (as we are supposed to do), delay on Team B. If Team B doesn't start a substitution within 3 seconds of A's sub being obvious, then we do not hold up the snap, and Team A may snap the ball with B having folks out of position, or with a Team B replaced player still on the field (illegal substitution by B).
However, if the 11th A player enters the field and does not get within the 9-yard marks, and Team B subs in plenty of time, or chooses not to sub, and we - properly - allow the ball to be snapped, the ball is dead immediately, and we penalize Team A for a dead-ball illegal substitution foul. By rule, we don't allow the down to be played.