It is the client who will pay for the transaction fee because they are the one sending the transaction. If @OP wanted to shoulder, he can reimburse it to the client but that is another expense for the supplier and a huge waste of profit for them. This can be fixed by using an app and doing internal transfers. But obviously, this goes against having a non-custodial wallet thingy. @OP can just put Bitcoin on the option for payment and add other options so that clients can have choices.
I believe accepting Bitcoin as a mode of payment in high transaction fee events will not be a problem if @OP adds more cryptocurrency to the payment options. This way @OP's business will not be disrupted because of the Bitcoin transaction fee surge.
IMO, it doesn't need to be too complicated. If it's just a payment option, as long as it's convenient for both the customer and the service provider. And if the agreement is accepted, the process continues as you mentioned, but the problem is the scale of the value of the products paid here and the balance between them, because we all see the problems Bitcoin's own in terms of transactions.
Although I also highly encourage the use of bitcoin in many different areas of life, the core commitment in life should still be maintained at a balanced level, not too skewed towards personal views. And perhaps from the previous suggestions, OP will also be able to choose a specific method and decision.