The code that governs AD backend selection seems to be here:
By default, when you provide a backend adtype, it will use soadtype = DifferentiationInterface.SecondOrder(adtype, adtype) to compute the Hessian. You can make this choice yourself by providing adtype = SecondOrder(adtype_outer, adtype_inner), in which case adtype_inner will be used for the gradient.
Note that I deduced this from the code but if it is not documented then it is subject to change. @Vaibhavdixit02 is the right person to ask.