Here is what we do in case it's of help.
Prior to a full ban, we place the user into a secondary UserGroup (we call it "Suspended" - your choice of title). We do that typically by issuing a Warning with an associated action to add the UserGroup. It can, of course, also be added in the AdminCP.
The secondary user group has almost all of its permissions removed, so it can't interact with the forum. Except:
We have a node set up with permissions such that only the Original Poster (thread starter) and certain team members can see any threads in it. We allow Suspended members (along with those selected team members) to start a thread and reply. Other members (who have never started a thread there) see an empty forum.
Thus, the ONLY place a suspended member can interact is inside this forum. He can negotiate his position there as required. The team members can judge and respond. And restore or ban as determined.
All done without add-ons.