Thanks to the excellent videos at ApplianceParrtsPros, it was an easy fix. While I had the trap duct assembly out, I noticed the drum front support bearing
https://www.appliancepartspros.com/ge-dryer-drum-front-we3m26-ap3790641.html was worn through.
While I was in there, I complicated the repair by removing the drum (more than was needed to replace the trap duct assy and front support bearing) to replace the belt and rear bearing. I probably should have replaced the idler / belt tensioner pulley as well, but it seemed OK.