Thanks for sharing your thoughts.
If you want to mark a user inactive, you can do a soft delete on that user: https://fusionauth.io/docs/v1/tech/apis/users#delete-a-user
Then you can re-activate them: https://fusionauth.io/docs/v1/tech/apis/users#reactivate-a-user
I'm not sure what you mean by expired? That seems like a construct you are creating yourself?
If you want to apply a time based attribute to a user, you could use user actions: https://fusionauth.io/docs/v1/tech/apis/actioning-users which let you apply an action to a user, which can be for a limited period of time or forever (until you remove it). There's some support in the admin UI for applying user actions.
HTH.