I thought I had verified that everything worked through the Powershell console, but just to be sure, I logged on interactively as the proxy user and stepped through the whole process...and got a "password expired" error.
It's working in SQL agent now, but I still find it strange that SSIS never errored out using the same login.