[Android Q&A, Help & Troubleshooting] ThaiM:
Thanks for the reply!

The reason I suspect it was this app that was the culprit is because I'm confident (or at least was) that it's the only new app I've ran since it stopped working. I also ran Optimize DBs if that would have any effect.

Here's the log from alogcat filtered with "tether".

[ 11-17 11:39:30.460 2707:0xadb D/Tethering ]

pdp0 is not a tetherable iface, ignoring

[ 11-17 11:39:31.240 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=3

[ 11-17 11:39:31.240 2707:0xadf D/Tethering ]

[ 11-17 11:39:31.240 2707:0xadf D/Tethering ]

[ 11-17 11:39:31.245 2707:0xadf D/Tethering ]

[ 11-17 11:39:31.245 2707:0xadf D/Tethering ]

[ 11-17 11:39:31.245 2707:0xadf D/Tethering ]

notifying tethered with iface =pdp0

[ 11-17 11:39:31.310 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=3

[ 11-17 11:39:31.315 2707:0xadf D/Tethering ]

[ 11-17 11:39:31.315 2707:0xadf D/Tethering ]

[ 11-17 11:39:31.315 2707:0xadf D/Tethering ]

notifying tethered with iface =null

[ 11-17 11:39:31.375 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=3

[ 11-17 11:39:31.380 2707:0xadf D/Tethering ]

[ 11-17 11:39:31.385 2707:0xadf D/Tethering ]

[ 11-17 11:39:31.385 2707:0xadf D/Tethering ]

notifying tethered with iface =null

[ 11-17 11:39:31.405 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=3

[ 11-17 11:39:31.410 2707:0xadf D/Tethering ]

[ 11-17 11:39:31.410 2707:0xadf D/Tethering ]

[ 11-17 11:39:31.415 2707:0xadf D/Tethering ]

[ 11-17 11:39:31.415 2707:0xadf D/Tethering ]

[ 11-17 11:39:31.420 2707:0xadf D/Tethering ]

[ 11-17 11:39:31.425 2707:0xadf D/Tethering ]

notifying tethered with iface =pdp0

[ 11-17 11:39:35.110 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=5

[ 11-17 11:39:35.115 2707:0xadf D/Tethering ]

[ 11-17 11:39:35.115 2707:0xadf D/Tethering ]

[ 11-17 11:39:35.120 2707:0xadf D/Tethering ]

[ 11-17 11:39:35.120 2707:0xadf D/Tethering ]

[ 11-17 11:39:35.120 2707:0xadf D/Tethering ]

[ 11-17 11:39:35.125 2707:0xadf D/Tethering ]

notifying tethered with iface =pdp0

[ 11-17 11:39:36.040 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=5

[ 11-17 11:39:36.040 2707:0xadf D/Tethering ]

[ 11-17 11:39:36.040 2707:0xadf D/Tethering ]

[ 11-17 11:39:36.050 2707:0xadf D/Tethering ]

[ 11-17 11:39:36.050 2707:0xadf D/Tethering ]

[ 11-17 11:39:36.050 2707:0xadf D/Tethering ]

[ 11-17 11:39:36.050 2707:0xadf D/Tethering ]

notifying tethered with iface =pdp0

[ 11-17 11:39:41.325 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=5

[ 11-17 11:39:41.325 2707:0xadf D/Tethering ]

[ 11-17 11:39:41.325 2707:0xadf D/Tethering ]

[ 11-17 11:39:41.330 2707:0xadf D/Tethering ]

[ 11-17 11:39:41.330 2707:0xadf D/Tethering ]

[ 11-17 11:39:41.330 2707:0xadf D/Tethering ]

[ 11-17 11:39:41.330 2707:0xadf D/Tethering ]

notifying tethered with iface =pdp0

[ 11-17 11:39:41.385 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=5

[ 11-17 11:39:41.390 2707:0xadf D/Tethering ]

[ 11-17 11:39:41.390 2707:0xadf D/Tethering ]

[ 11-17 11:39:41.390 2707:0xadf D/Tethering ]

[ 11-17 11:39:41.390 2707:0xadf D/Tethering ]

[ 11-17 11:39:41.390 2707:0xadf D/Tethering ]

[ 11-17 11:39:41.395 2707:0xadf D/Tethering ]

notifying tethered with iface =pdp0

[ 11-17 11:40:05.130 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=4

[ 11-17 11:40:05.130 2707:0xadf D/Tethering ]

[ 11-17 11:40:06.250 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=4

[ 11-17 11:40:06.250 2707:0xadf D/Tethering ]

[ 11-17 11:40:11.430 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=4

[ 11-17 11:40:11.430 2707:0xadf D/Tethering ]

[ 11-17 11:40:15.129 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=4

[ 11-17 11:40:15.129 2707:0xadf D/Tethering ]

[ 11-17 11:40:16.054 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=4

[ 11-17 11:40:16.054 2707:0xadf D/Tethering ]

[ 11-17 11:40:21.340 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=4

[ 11-17 11:40:21.340 2707:0xadf D/Tethering ]

[ 11-17 11:40:21.400 2707:0xadf D/Tethering ]

TetherModeAliveState.processMessage what=4

[ 11-17 11:40:21.400 2707:0xadf D/Tethering ]