Incorrect extension cannot remove from queues

I’m not sure how asterisk did this, but it did… I have a dynamic queue member using extensino 407 that also has a ghost extension logged in using extension 402, which is not actually an extension in the server.

What took place:
I removed extension 407 from queue 2600, and instead of removing that extension from the queue by having the agent logout before I removed 407 from the dynamic agent list, I removed the dynamic extension while the user was logged in, then removed the agent from the queue using fop2.

After the user logged out, then logged back in the next morning, the extension showed back up in queue 2600, though it was paused, and I was unable to remove the extension from the queue using fop2.

When I run the command asterisk -rx “queue show” I get an extension that is not that user’s extension:

2600 has 0 calls (max unlimited) in 'ringall' strategy (4s holdtime, 579s talktime), W:0, C:17, A:0, SL:100.0% within 60s Members: <ext DisplayName> (Local/402@from-queue/n) with penalty 1 (dynamic) (paused) (Invalid) has taken no calls yet …the user’s extension is 407, though (in other queues, she’s logged in as 407: <ext DisplayName> (Local/407@from-queue/n) (dynamic) (Not in use) has taken 4 calls (last was 4376 secs ago)).
When I enter the command asterisk -rx “queue remove member 402 from 2600” I get:

Unable to remove interface '402' from queue '2600': Not there Command 'queue remove member 402 from 2600' failed.

So far I’ve re-added 407 to the dynamic list and had the user log in and log out. The ghost extension goes away. I remove 407 from the dynamic list, but when the agent logs in, the ghost extension shows back up. I have no idea what to do at this point.