I ended up writing my own, musicd, because I couldn’t find anything out there that was exactly what I was looking for.
musicd is a daemon, that runs in the background and plays a list of songs from a file (including picking up new songs as that file is edited.) You use your standard command line tools to queue the songs up: I have a handful of scripts which I use to select songs to add with fzf, and/or I use vim (with filename completion) to edit the playlist file.
(Also, musicd has various mechanisms for selecting a randomized list of songs to play, for when I don’t feel like queuing songs up myself.)
musicd was designed to meet my own idiosyncratic needs, but who knows—perhaps someone else will find it useful as well.