For boot loader reasons, GPIO18 on an ESP32-S2 comes with an external 10k pullup resistor mounted to the board (right next to the MCU pin 18 itself). If you download the schematic for this board you can see this as well.
Problem 2 is that when a MCU goes to sleep, pullups generally get released (i.e. cease to function). This is because pullups are not like fuses on an Atmel chip and therefore are only active when the MCU is active. So when your MCU goes to sleep only GPIO18 appears to work because there is an external pullup resistor on it. All other pins will release their pullup and become floating while the MCU is sleeping making it appear like it didn’t work for them (which technically it didn’t work for any of the pins). For ESP32 MCU’s, think of deep sleep as basically turning off the MCU.
If you need a default state for pins when the MCU is in deep sleep you will need to use external pullup or pulldown resistors to implement this correctly. And of course…before doing that, make sure you understand what each pin’s function is and that you don’t accidently change a strapping/boot pin’s default behavior.