I don't know how your rules look but usually you have this one tiny paragraph.
Staff members are free to adjust the rules to fit the situation specifically so the community can evolve at its best and without problems. Decisions made in such specific situations are consensus decisions, therefore they are approved actions of the whole staff.
(If you don't have such a paragraph, I can recommend to write one as soon as possible because you just can't cover every aspect with rules, and sometimes out of the box actions are needed.)
This is one case which is legitimated by such a paragraph - your problem user literally lives on the edge, suspended several times but doesn't behave that badly to be banned permanently. Firstly, I would suggest to just talk to him. It's obvious that he has a problem with either you, the staff or the community. Discuss how it can be solved, perhaps he listens and tries to solve the problem with you. It's not very likely but I would always try to communicate first before taking ominous actions as this can backfire (problem user reveals that he's been treated differently by the team, community uproars).
Probably, there's the option of monitoring problem users. So, everytime they're trying to start a thread or reply to one, their text is placed on a list which has to be reviewed by the staff and is exclusively approved by staff. It's a lot of work but you can remove the problem before it actually occurs. If you struggle with too much workload, you can try to implement a privilege system which allows regular users to help out.
You can also try to make rules more strict so off-topic and on-topic is even more separated. This way, your problem user has to actually write something useful because he has to meet the rules more precisely. Of course, this can backfires, as it affects other users.
Most likely, I would go with the waiting list.
recently we've been subject of spam accounts which solely purpose is to annoy us. We, as staff, have discussed this matter thoroughly to achieve the best solution for everyone.
From now on, every newly registered user's post is placed on a waiting list which is reviewed by us to ensure that every single post meets our rules regarding etiquette. After you proved that you read our rules, you, as trusted user, are released from this restriction and your post will show up immediately. There's no amount of approved posts you need to become a trusted user. The decision is consensus and every case will be handled individually.
Please be patient. We will do our best to review the post of newcomers with minimal delay so you can also enjoy our community at its best.
I guess this idea will be work but it still gives you the freedom to decide who's a harm and who's not. By not implementing an amount of approved posts which are needed to become a trusted user, you can mark the spammy users who have absolutely no argument to complain.
Also, you have not suspended any user, so the real problem user hopefully won't create new accounts as they also are placed on the waiting list. I think that you can distinguish between spam users and real ones. So you can approve real ones really fast and let the spam users be spam users. No need to approve anything from them.
It should be noted that I would usually recommend to just do to do an IP-ban but I guess that's not useful if the user is technically savvy. And the most important thing: don't feed the troll. Even if he's a hassle, if you (and your community) don't feed him anything, he should be bored real fast.