Drupal Commerce order completes but reverts from pending to billing
Most likely the order processing rules.

Look into whether your payment gateway is firing an IPN / notification which changes the order. If some orders process in a different order (eg some browsers varies in speed and fires checkout rules in a different order to the others) then you can see this sort of inconsistent behaviour.

Your checkout rules can permit EITHER the IPN or customer redirect to provide checkout notification - this can avoid showing some customers "we're awaiting confirmation from payment gateway". Just check order status and don't update an order which is already completed.

Your gateway may refer to IPN under another name. IPN requests can be discerned by the differing origin IP and authentication (if purchase is from a logged in user, but the above image is an anonymous purchase so not discernible there).