Okay… one more addendum…. I found a workaround:
This issue seems to occur in combination with WPS Hide Login, a caching service, and any theme or plugin that adds functionality to either the wp_Login_failed or wp_authenticate hooks.
I did a search for both of these in all my plugins and themes. They were both referred used in a membership plugin. I simply commented out the two lines connected to the “add_action()” commands that called those hooks, and it works perfectly now.
For further example, the lines looked like this:
add_action('wp_login_failed', 'name_of_custom_failed_login_function' );
add_action('wp_authenticate', 'name_of_custom_authentication_function',10,2);
**SIDE NOTE*** make sure to test your logins and failed logins. I got pretty lucky, but make sure that this doesn’t break anything that requires extra functionality.
Theoretically, this means there should be some JS (and probably css) files that output the error and control the shake that are messed up by caching. They may just need to be added as exceptions for my caching service. I don’t know what those are yet, but if I find them I will let you know. Mr. Kulka, if you would take a look at a similar setup with a CDN and a membership plugin (or plugin that lets you customize the look of wp-login.php) you should replicate this issue.