The solution was to use lspci to locate my USB controllers:
$ lspci | grep USB
03:00.4 USB controller: Realtek Semiconductor Co., Ltd. Device 816d (rev 0e)
05:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Raven USB 3.1
05:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Raven USB 3.1
And add their bus IDs to RUNTIME_PM_BLACKLIST in /etc/tlp.conf
My USB devices hotplug just fine now. So, this turned out to be a TLP default-configuration issue.
]]>$ lsusb
Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 005: ID 06cb:00bd Synaptics, Inc. Prometheus MIS Touch Fingerprint Reader
Bus 004 Device 004: ID 04ca:7070 Lite-On Technology Corp. Integrated Camera
Bus 004 Device 003: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 004 Device 002: ID 8087:0025 Intel Corp. Wireless-AC 9260 Bluetooth Adapter
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 003: ID 22e8:170a Cambridge Audio CA CXA80 1.0
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Usage as pulseaudio device works as expected. If I unplug my device, it's absent as expected:
$ lsusb
Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 005: ID 06cb:00bd Synaptics, Inc. Prometheus MIS Touch Fingerprint Reader
Bus 004 Device 004: ID 04ca:7070 Lite-On Technology Corp. Integrated Camera
Bus 004 Device 003: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 004 Device 002: ID 8087:0025 Intel Corp. Wireless-AC 9260 Bluetooth Adapter
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Problem is, if I plug my device back in, it never reappears until I reboot linux:
$ lsusb
Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 005: ID 06cb:00bd Synaptics, Inc. Prometheus MIS Touch Fingerprint Reader
Bus 004 Device 004: ID 04ca:7070 Lite-On Technology Corp. Integrated Camera
Bus 004 Device 003: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 004 Device 002: ID 8087:0025 Intel Corp. Wireless-AC 9260 Bluetooth Adapter
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Note: Yes, I do run TLP, but the device is properly blacklisted from USB autosuspend, and to prove that it's not an issue, if I disable TLP completely and reboot, the behaviour is exactly the same.
Another note: I was running on Pipewire, which works beautifully in all other respects. I did think it was the culprit, and removed all traces of pipewire / installed pulseaudio - but no change.
How do I debug this? Here is some output from dmesg - you can see when it originally picks up the device, and the final line (upon disconnect) but when I plug it in again, there is no further dmesg output regarding USB at all:
$ sudo dmesg | grep -i usb
[ 0.005273] ACPI: SSDT 0x00000000BA158000 000D2D (v01 LENOVO UsbCTabl 00000001 INTL 20120711)
[ 0.326078] ACPI: bus type USB registered
[ 0.326078] usbcore: registered new interface driver usbfs
[ 0.326078] usbcore: registered new interface driver hub
[ 0.326078] usbcore: registered new device driver usb
[ 0.551805] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.552554] ehci-pci 0000:03:00.4: new USB bus registered, assigned bus number 1
[ 0.564904] ehci-pci 0000:03:00.4: USB 0.0 started, EHCI 1.00
[ 0.564954] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.11
[ 0.564956] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.564958] usb usb1: Product: EHCI Host Controller
[ 0.564959] usb usb1: Manufacturer: Linux 5.11.16-arch1-1 ehci_hcd
[ 0.564961] usb usb1: SerialNumber: 0000:03:00.4
[ 0.565115] hub 1-0:1.0: USB hub found
[ 0.565218] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.565231] uhci_hcd: USB Universal Host Controller Interface driver
[ 0.565271] usbcore: registered new interface driver usbserial_generic
[ 0.565275] usbserial: USB Serial support registered for generic
[ 0.831791] xhci_hcd 0000:05:00.3: new USB bus registered, assigned bus number 2
[ 0.833505] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.11
[ 0.833511] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.833514] usb usb2: Product: xHCI Host Controller
[ 0.833516] usb usb2: Manufacturer: Linux 5.11.16-arch1-1 xhci-hcd
[ 0.833518] usb usb2: SerialNumber: 0000:05:00.3
[ 0.833762] hub 2-0:1.0: USB hub found
[ 0.834313] xhci_hcd 0000:05:00.3: new USB bus registered, assigned bus number 3
[ 0.834318] xhci_hcd 0000:05:00.3: Host supports USB 3.1 Enhanced SuperSpeed
[ 0.834358] usb usb3: We don't know the algorithms for LPM for this host, disabling LPM.
[ 0.834409] usb usb3: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.11
[ 0.834412] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.834414] usb usb3: Product: xHCI Host Controller
[ 0.834415] usb usb3: Manufacturer: Linux 5.11.16-arch1-1 xhci-hcd
[ 0.834417] usb usb3: SerialNumber: 0000:05:00.3
[ 0.834575] hub 3-0:1.0: USB hub found
[ 0.835435] xhci_hcd 0000:05:00.4: new USB bus registered, assigned bus number 4
[ 0.836438] usb usb4: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.11
[ 0.836443] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.836446] usb usb4: Product: xHCI Host Controller
[ 0.836448] usb usb4: Manufacturer: Linux 5.11.16-arch1-1 xhci-hcd
[ 0.836450] usb usb4: SerialNumber: 0000:05:00.4
[ 0.836870] hub 4-0:1.0: USB hub found
[ 0.837264] xhci_hcd 0000:05:00.4: new USB bus registered, assigned bus number 5
[ 0.837269] xhci_hcd 0000:05:00.4: Host supports USB 3.1 Enhanced SuperSpeed
[ 0.837336] usb usb5: We don't know the algorithms for LPM for this host, disabling LPM.
[ 0.837371] usb usb5: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.11
[ 0.837375] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.837377] usb usb5: Product: xHCI Host Controller
[ 0.837379] usb usb5: Manufacturer: Linux 5.11.16-arch1-1 xhci-hcd
[ 0.837381] usb usb5: SerialNumber: 0000:05:00.4
[ 0.837538] hub 5-0:1.0: USB hub found
[ 1.164161] usb 4-1: new full-speed USB device number 2 using xhci_hcd
[ 1.164197] usb 2-2: new full-speed USB device number 2 using xhci_hcd
[ 1.308437] usb 2-2: not running at top speed; connect to a high speed hub
[ 1.312488] usb 2-2: unable to read config index 0 descriptor/start: -71
[ 1.312558] usb 2-2: can't read configurations, error -71
[ 1.317580] usb 4-1: New USB device found, idVendor=8087, idProduct=0025, bcdDevice= 0.02
[ 1.317592] usb 4-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 1.434145] usb 2-2: new full-speed USB device number 3 using xhci_hcd
[ 1.447481] usb 4-2: new high-speed USB device number 3 using xhci_hcd
[ 1.578974] usb 2-2: not running at top speed; connect to a high speed hub
[ 1.589170] usb 4-2: New USB device found, idVendor=05e3, idProduct=0610, bcdDevice=60.52
[ 1.589181] usb 4-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 1.589184] usb 4-2: Product: USB2.0 Hub
[ 1.593481] usb 2-2: New USB device found, idVendor=22e8, idProduct=170a, bcdDevice= 1.09
[ 1.593493] usb 2-2: New USB device strings: Mfr=1, Product=8, SerialNumber=0
[ 1.593498] usb 2-2: Product: CA CXA80 1.0
[ 1.593501] usb 2-2: Manufacturer: CA
[ 1.595826] usb 2-2: can't set config #1, error -32
[ 1.638304] hub 4-2:1.0: USB hub found
[ 1.987490] usb 4-2.1: new high-speed USB device number 4 using xhci_hcd
[ 2.090454] usb 4-2.1: New USB device found, idVendor=04ca, idProduct=7070, bcdDevice= 0.25
[ 2.090466] usb 4-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2.090470] usb 4-2.1: Product: Integrated Camera
[ 2.090474] usb 4-2.1: Manufacturer: SunplusIT Inc
[ 2.224141] usb 4-2.4: new full-speed USB device number 5 using xhci_hcd
[ 2.330794] usb 4-2.4: New USB device found, idVendor=06cb, idProduct=00bd, bcdDevice= 0.00
[ 2.330806] usb 4-2.4: New USB device strings: Mfr=0, Product=0, SerialNumber=1
[ 2.330810] usb 4-2.4: SerialNumber: 36d46e182126
[ 20.364023] usbcore: registered new interface driver btusb
[ 20.865289] input: Integrated Camera: Integrated C as /devices/pci0000:00/0000:00:08.1/0000:05:00.4/usb4/4-2/4-2.1/4-2.1:1.0/input/input98
[ 20.865394] usbcore: registered new interface driver uvcvideo
[ 20.865397] USB Video Class driver (1.1.1)
[ 301.613153] usb 2-2: USB disconnect, device number 3