Actually quite a nice system. Otherwise you would need to either check regularly if a ban has expired and thus probably do a lot of unnecessary checks, or you would need to predict when the next ban expiration will be and thus probably introduce a lot of bugs with the prediction code.
What might be interesting is a feature request, to not show the flag if the expiration has happened. I assume the flag is stored with a timestamp for when the ban will expire. Thus it should be possible to filter it out when displayed. But actually remove it when the user logs in.