I think "please be patient" was not the best idea. But not because the user felt this way. This is a typical case of offloading work from the developer to the user. This is usually really annoying for the user.
Needless to say: If the user is able to break things don't allow it to happen. Of course there are technical solutions that forbid resubmitting the form.
On a personal level, this is an interesting case: nobody likes to be patronized - especially by software. Other people designing such messages will never have this kind of direct feedback. We as designers/developers can learn from your case: double check your messages - not just the words, but also their intend might offend our users. Nobody who wants to sell Software can afford that.
On an organizational level I wonder: Did anyone bother telling this one user that this particular form takes long to submit? Creating this message is much more expensive than telling him. While it has only little or no effect on the users behavior. A technical solution is more costly, but definitely effective.
It is an economical decision. And in your particular case it might be worth to take the message approach: the user wastes an hour the month because of this flaw. You might need 16 hours to fix this. If you are paid equally, it is still a short sighted decision not to fix it technically. As soon as there are more hours wasted or your products reputation is at stake, management should not think twice and demand a technical solution.
I also want to give some empathy for your poor admin. His job is to work with some custom tool (functional but probably not aesthetically pleasant). There is this process that takes a really long time. He already wasted hours looking at this screen, fighting the urge to scream and to throw things because it is so sloow. He accidentally pressed the button twice before - it was cruel - he not only wasted even more time, but also something broke and HE was held responsible. He wishes it was faster. But no one has time to analyze the performance Problem. After all it's just one user - right? Now finally someone takes time to work on that process, but instead of improving performance or at least stop him from accidentally submitting the form twice, they rub it in his face: "it's your fault!" Given the history, that's the message. Telling the user to be patient is worse. Now it's not an accident anymore the message attacks him personally: "You are impatient". Admins in contact with users know what impatience is. They hate their users for their impatience - now he should be one of them? That is offending.
beforeunloadevent should be enough.