Why would a single ghost record remain in a few random indexes?
You can find the answer in this article Inside the Storage Engine: Ghost cleanup in depth

When a record is deleted, apart from it being marked as a ghost
record, the page that the record is on is also marked as having ghost
records in one of the allocation maps – the PFS page (post coming
soon!) – and in its page header. Marking a page as having ghost
records in a PFS page also changes the database state to indicate that
there are some ghost records to cleanup – somewhere. Nothing tells the
ghost cleanup task to clean the specific page that the delete happened
on – yet. That only happens when the next scan operation reads the
page and notices that the page has ghost records.

So it's not cleaned up until the page is read again