Thank you for the advice. I have already added a LCD_NONE flag that removes all LCD logic from the system. Without that the buttons are redundant so I will look into having it just reset the system settings if you hold one button in on bootup.
As for the GPIO pins, I am going to see if I can add logic to reduce the amount of stations available, perhaps have 8 but hide 4 of them by default or something. For a more complex controller I will definitely add a shift register or a IO expander yes.
I flashed my nodemcu last night got it connected to the wifi. However on subsequent boots it continually writes the config :/
It also did not store my wifi password in the password file so is unable to connect to the wifi.
I will post logs tonight.