BTCPay does indeed look quite promising. Unfortunately though it's not designed for sending payments which is actually a crucial requirement for us. I've also looked into Electrum (maybe in combination with the CLI), but I'm not sure if this is scalable enough.
For receiving and sending payments for security purposes should be separate. Unless there is a compelling reason for it they should not even be on the same server.
BTC comes in -> moves to cold wallet with multisig -> as needed move some to a different hot wallet -> BTC out.
If you have if all in 1 a programming error on the side of receiving payments can get to your main wallet and wipe you out. I know you said you were going to move the BTC out of the incoming wallet but putting it back in there or leaving a large amount in it is just asking for trouble.
Just my view.
Stay safe.
-Dave