Joe, you are quite correct that the issue is with GDM
Which solution is ‘better’ depends whether you prefer lightdm to gdm
Or am I missing something!?
I’ve just had the same (or v similar) issue and fixed it with this:
specifically post #18