I concur. I also have had the intermittent problem of installing one particular app - "Facebook Messenger" by Facebook when hitting "Update" repeatedly it results in the aforementioned alert or no action with the button changing back to "Update". Helps only by uninstalling from Launchpad and re-installing from "Purchases".
However, in my case I found that the culprit is trustd process which apparently is responsible for all certification and validity checks: the new unpleasant reality is that starting with Mojave and implementation of what Apple calls "notarization" every app is run checks on by making the connection to this host: per Apple developer documentation if there's no connection notarized apps won't launch and without being notarized they can't be installed - a closed circle. trustd phones to the host ocsp.apple.com and this is the reason of why apps were slow to launch or failed to do that completely when millions of users upgraded to Sur (I don't run it and I chose to stick with Mojave but I didn't apply the latest bug-ridden Security Update because I don't want to install Safari 14 which is a loss w/o Top Sites): actually, your computer is not your. I blocked it in the hosts file and noticed that after doing that App Store lost a connection and so did the update mechanism. Every time updates come I unblock it: sometimes it requires a time to rebuild the cache, other time it works right away.
Also, bear in mind that blocking in hosts by assigning any host the address of your machine ("localhost") and denying domain resolution and outgoing connection with the network monitoring software like Little Snitch are different things: with the former, you just spoof the system into believing that a domain A is an IP-address B. With the latter, you're nixing it with brute force. With that in mind, immediately after I denied resolution and outbound connection apps' launch times jumped to a crawl, so I had to resort to the hosts method. Just so you know.
I'm also sure that the much talked System Integrity Protection contributes to this havoc. Give it a try and while testing disable it temporarily along with blocking the connection in hosts.