I also have a problem with an expired badge. I wanted to test awarding badges to students, and created a badge with an expiry date. Now, I cannot remove the badge from the system because the badge was based on Activity completion instead of being manually awarded.
To avoid seeing it in my badges, in my profile, I selected Badge Preferences, and checked the 'eye' icon for the expired badge.
The badge is still in the system, but no longer visible in my profile. The solution is not automatic, but perhaps it could help.
Automatically hiding expired badges would be helpful, but deleting them would be even better.