I've been there. On a Discord I used to moderate, there were a few people like that who did not really break any rule, or not in an egregious enough manner to deserve a ban individually
A rule was made for that situation: "If the effort and/or stress associated with moderating you regarding rules or general behavior becomes too much of an issue, we will remove you from the server.".
That rule has been used a few times since its implementation.
I use to run a lot of tasks on Amazon’s Mechanical Turk and the hardest problem I had was the people I call “Superturkers” who would do a very high volume of work that is just barely acceptable in quality.
On some level they are very hard working and if I banned them it would take longer to get my tasks completed. If they did 5% of the work that they do the low quality wouldn’t bother me because (1) a little of that diluted in the whole is OK and (2) the individuals would not come to my attention.
With some feedback some of those people might get better (I was always open to paying more for quality) but I also didn’t want to get into arguments with those folks.
Save yourself the rules-lawyer hassle and add a rule saying essentially "all the other rules are good-faith guidelines, but we can ban you for any reason we want." This is already a de facto rule in all forums/etc; forums that don't state it explicitly just have moderators stretch and contort the other rules to essentially become this rule anyway.
A general principle I've used in moderation is that after I admonish someone about a behaviour what I expect is that they will scrupulously seek to keep as far clear of that line as possible.
If they're hovering right over it, they're out, based on the administrative burden principle.
The other rule is that all arguments with moderators are short, and lost.
A rule was made for that situation: "If the effort and/or stress associated with moderating you regarding rules or general behavior becomes too much of an issue, we will remove you from the server.".
That rule has been used a few times since its implementation.