I have a number of ways that I attempt to gainstage in Logic. I used to use the Gain plugin on every track along with a play-through and adjustment, just like Matt does.
Currently I select all of the tracks/regions and use the 'Normalize Region Gain...' command to set the peak level to -12 dB. One step, no waiting. There is a tiny issue if one (or more) of the tracks have been normalized - 0 dB peaks - which won't get modified easily. Those tracks I open in the Audio File Editor and force the recording level to peak below 0 dB (destructive) and then use 'Normalize Region Gain...' (non-destructive). Takes less than 30 seconds in almost every case.
I won't do gain staging like this if the recording is 'live' with all of the players interacting with each other. The players set the appropriate gain 😉 If the gain needs to be changed up or down it's a matter of selecting all the tracks/regions and adjusting the Gain: parameter in the Region inspector up or down...this will alter all tracks, effectively turning them all up or down. Non-destructive.
I have a new tool to work with thanks to iZotope. The Neutron 3 'Mix Assistant' will listen to the mix and adjust levels allowing focus, etc. All I do is put a 'Relay' plugin on each track so MA has something to adjust. More typical is I bus my instruments and vocals, put a Neutron 3 on each of the buses, and let the MA work with that. Very nifty. Does a good job.
I'm pretty stuck on my iZotope tools - Neutron, Nectar (vox), Ozone, Insight (meters), and RX. All the tools are there...work in all of my DAWs too!