I'm a developer of a custom server software which has a plugin API allowing plugins to control various things such as sneaking.
Previously, when a player started sneaking, resending their entity metadata without the sneak-flag set would cause the client to unsneak. OK so far.
As of 1.1.0.9 (possible also 1.0.x, the reporter didn't say and I didn't test on 1.0), the client unsneaks for a split-second, and then resends the sneak action to the server. Plugins which cancel the sneak event then end up with a client-server feedback loop.
I distinctly remember this worked just fine ~0.16.x, I'm not sure exactly when it became an issue. A demo video is attached. "cancel sneak!" message is sent to the client when the plugin cancels the sneak-event and resends the entity metadata without the sneak flag.
To clarify: Resending the entity metadata without the sneak flag when the player is sneaking ought to turn off sneaking client-side. Instead the client starts sneaking again and resends the start-sneak action.
References:
Cleaning up old tickets: This ticket has not been updated recently (1 year+) so is being closed as Cannot Reproduce. If you feel this is still a valid issue then please comment, or create a new ticket following the Issue Guidelines.
Quick Links:
📓 Issue Guidelines – 💬 Community Support – 📧 Feedback – 📖 Game Wiki