After I had to add a special animation for one email system so that user was sure that "the core functionality of encrypting" was indeed working (it took milliseconds in reality), your experience doesn't surprise me that much. But, in my "IoT" system we have a mix of devices. Our service can handle most requests in sub millisecond, but some devices (gprs) need at least minimum 1 second (20sec is still within time limit) to respond only because of slow connectivity. And then I have a parking ticket machines where you press button, wait 2 seconds, it beeps, then after 2sec it changes screen to "printing ticket", then after 2s you get the ticket, where everything can be a local action (free ticket without payment). Technology is wild.