Hi,
Don't know if this is still active but it has a lot of view so...
The GMS can not check the state if you use controller based subscription plans.
I was also looking for this problem and came out on the release note of the software:
About controller-based subscription plans
Controller-based subscription plans operate independently of GMS, and will not update GMS when
a user account, based on them, expires and goes “invalid”, which will result in leaving the user
account in GMS incorrectly showing the status as active.
Consider not using controller-based subscription plans, instead creating all users from within GMS
And this is still add in the release note of the latest version 6.5