I checked the interceptors of the soap binding there is any interceptor can meet you requirement.
I also reviewed the code of your interceptor, it looks good from my side.
Thanks for share this with us.
I have update my interceptor to set up Fault code to sender and http code 400 when functional wishes are reached.
I also add functionality to set subcode for fault soap in this interceptor.
Do there are a best way to do this things ?
thanks in advance.