Before I go to the "whinging" part of the post, let me just remind you that most of the problems with detecting Thrustmaster HOTAS X are due to the fact that some dummy switched it from PC to Playstation mode (the switch at the front of the hotas). I'd suggest taping down that switch because it doesn't have enough resistance to avoid incidental toggles.
Now to address the "whinging" part:
Elite: Dangerous (...) always forgets my custom keybindings.
Custom keybindings are gone. As usual.
No they aren't gone, they are just under "Custom" in the dropdown. If the Custom preset doesn't show, it's because it contains bindings for a device which is not plugged in right now.
the game switches from custom to a factory template,
Exactly, to KB+M if I remember correctly.
. i suspect there are special paths for this near universal casual device
No, it's a controller device like any other, it has its ID and whatnot. And if it's not plugged and turned on when game starts, ED won't detect it was plugged after, as far as I know ED doesn't do detection after it's started.
I'm assuming that said file is gone
asking me to tell Windows to show hidden files (do I scream at the PC?), editing files in Notepad and what not just isn't a solution for me. I'm just here to play a game...
WHY CAN'T E: D LOCATE ANY OF THESE APPARENT CUSTOM BINDING FILES?
I'd take a look into that BindingLoadingError file - it's a simple text document. I think you might find it enlightening. Also, you assume wrong, and yes, you choose to make it a problem for you and when presented with actual solutions to the problem like one described below by znôrt, you back off to whinging. Yes you're difficult that way, and while I agree that wtfdev made it unnecesarily complex and user-unfriendly, blowing smoke on the guys trying to help you just proves you're difficult to work with.
rename custom.3.0.binds to something-sensible.3.0.binds (remember to edit the file and change the name inside too: Root PresetName="...")
make a backup of that file
now 'something-sensible' is selectable in game, forget about 'custom' forever
if you ever see 'custom' selected, something went wrong detecting some device. see logs.
This instruction is actually a surefire solution to your problem. So, just to reiterate:
1. Plug in ALL controllers that are described in this file. If you bound a key to something other than the Thrustmaster HOTAS, plug / turn on that thing as well. For example I had TFlight Hotas X and my driving wheel + pedals bound at some point. Maybe you had your gamepad bound also?
2. Rebind controls as you see fit. If you don't need the additional controllers (if there are any), rebind their controls to the HOTAS so you just need to plug this one in for controls to work.
3. After you're happy with the controls and everything works, quit the game.
4. Make a copy of custom3.0.binds as per Znôrt's solution.
5. Never have to worry about vanishing binds again.
PS: Do you try to scream at cars when they break down too?