The dishwasher drain hose will take a week to arrive.  So... I duct-taped the old one and reinstalled it.  No drips after two loads.  Whew, that reduces labor.

The async/await code fell into harmony about 15 minutes after my last post.  Well, aside from why console.log on a JS Promise prints as an empty object instead of the class name.  There are still complexity-gremlins to work through, between the Twilio API and the Express.js web server being used by netlify-lambda.  (Why are Twilio's POSTs getting 301-redirected to GETs by some layer outside my handler?)