As suggested above: we have a UserGroup (which we call "Suspended"). This has all permissions removed except for view/post/reply (etc) to threads in just one forum (call it "Appeals" or something). So our initial step is to Suspend (i.e add user to this group), allow for an appeal by this route. Suspended is always temporary; after review (or after a time if no appeal is forthcoming), we then either revert or fully ban. The forum also has permissions restricted so that posts and threads by anyone other than the thread starter are hidden to all except {review pesonnel}. Normal members see an "empty" forum unless/until they add a thread to it - when they see just their thread/s.