Unfortunately, journals have a very long drawn out process which can get extremely tiring for the authors. However, I don’t think the journal is doing this purposely to annoy you. Journal editors and reviewers are extremely busy people, and they would have rejected your paper outright rather than spend so much time just to test your patience and then reject it. They have definitely seen some value in the paper, and are trying their best to make it publication worthy.
Even if the referee recommends acceptance, the final decision rests with the EIC or editorial board. It is perfectly normal for the journal to send a paper for a second or third round of review, particularly since the referee has recommended further reviewing. The journal has clearly mentioned that “the report we received was not sufficient enough in order for a final decision to be reached.” This means that the peer review report was not very strong. It is quite common for editors to send the journal for an additional review if they feel that the previous review was weak or not detailed enough.
I don’t think it is advisable to withdraw your paper at this stage. For one, this is a reputable journal. The value of your paper will definitely be high if you publish in this journal. Secondly, the journal has already spent a lot of time and resources on your paper. This is an indication that they have seen potential in your paper. The referee has also given a recommendation to accept. All these are positive signs and indicate a possibility of acceptance. Additionally, if you withdraw and submit to another journal, the whole peer review process will start again, and it might take another 7 months or even more. Also, the paper might be rejected after peer review and then you will have to submit to another journal. That way, you will end up losing more time.
I think you should just be patient and continue with this journal.