Replaced the drain pump. The old pump had nothing obviously wrong... there was no pool of water in the base, the pump spun freely, and had the correct resistance (125 - 135 ohms). Replacing it solved the problem. Found a YouTube video to demonstrate how to do the swap. Key was to take the door outer panel off to give more access underneath. Interestingly, once I popped the lower kick panel off, there was a folded sheet with wiring ifo, expected resistances, and even special key sequence instructions for testing various components.