I’ve seen sites suspend accounts to handle expired memberships. That way, if the user restarts their membership, you just need to unsuspend them.
Another common approach is to just remove the user from a custom ‘members’ group when their membership expires. If you use membership in the ‘members’ group to control access to most of your site’s categories, then removing the user from this group will limit their access to the forum. Readd the user to the ‘members’ group when they restart their subscription.