When a new password is to be used, you need to restart (=stop and start) the service. See the docs:
When you change the service startup account for the Database Engine and SQL Server Agent, the SQL Server service (the Database Engine) must be restarted for the change to take effect. When the service is restarted, all databases associated with that instance of SQL Server will be unavailable until the service successfully restarts.
Now, why does changing the password require a restart? That's because when a process starts, it generates a security token. The token's validity depends on its password. If you change the account password on AD and for the service, the current process still keeps using the old password. In a while, that leads to locking the account, as it tires to re-authenticate with the old (=invalid) password.
Oh, and don't change the service account's password just because it's too old. If frequent changes are needed, use virtual or managed accounts instead.