"Another update is currently in progress" in WordPress
You click Update Now and WordPress stops at once: "Another update is currently in progress." Nobody else is updating. When an update starts, WordPress writes a lock into the database so two updates cannot run at the same time, and removes it when it finishes. If the earlier update was cut off (a timeout, a closed tab, a server limit), the lock stays behind and blocks every update after it. The lock is safe to clear once you know no update is really running; the real job is finding why the last one stopped.
Wait 15 minutes and try once more. WordPress treats a core update lock older than 15 minutes as abandoned and replaces it by itself. If the message is gone after that, an update was cut off once and you are done (read step 4 so it does not happen again).
Is the site showing "Briefly unavailable for scheduled maintenance"? Then the update stopped halfway and also left a .maintenance file in the site's main folder. Delete that file first (see the maintenance mode fix).
Still blocked after 15 minutes? Look in the database: in phpMyAdmin (host panel), open the wp_options table (your prefix may differ, such as wpk3_options) and search option_name for core_updater.lock. A row there is the leftover lock; its value is the time it was set. Automatic background updates use a second lock, auto_updater.lock.
Why did the last update stop? Check the host's PHP error log for the minute of the failed update. "Maximum execution time exceeded", "Allowed memory size exhausted" or "Could not create directory" each name the real cause.
The fixes, by case
Take a database backup first (the host panel's backup, or phpMyAdmin Export). You are about to delete one row, and a backup makes that reversible.
Remove the lock with WP-CLI, if your host has it: wp option delete core_updater.lock. For the background updater: wp option delete auto_updater.lock.
Or remove it in phpMyAdmin: in the options table, delete only the row whose option_name is core_updater.lock. Touch nothing else.
Delete a leftover .maintenance file in the main folder if the site still shows the maintenance message.
Run the update again from Dashboard, Updates, on a fresh page, and leave the tab open until it says WordPress was updated. Then check Dashboard, Updates shows the new version.
What you see, what it means, what it needs
What you see
What it means
Usual fix
Message right after a failed or closed update
The lock from that update is still there
Wait 15 minutes, then update again
Message for hours or days
The lock row was never cleared
Back up, delete core_updater.lock
Message plus "Briefly unavailable for scheduled maintenance"
The update stopped halfway
Delete .maintenance, clear the lock, update again
Comes back after every update attempt
Each update dies on a server limit
Raise the time or memory limit, fix folder permissions
Automatic updates stopped, manual ones work
The background updater's lock is stuck
Delete auto_updater.lock
What not to do
Do not delete the lock while an update may really be running (another admin, the host's own updater). Wait the 15 minutes first.
Do not empty or edit other rows in the options table. Your whole site's settings live there.
Do not re-install WordPress over the top or delete wp-admin. The lock is one database row.
Do not install an "unlock updates" plugin from outside wordpress.org. Deleting one row needs no new code on your site.