How to interrupt the passwd command?

passwd has switched the terminal in completely raw mode --- it will simply read everything you throw at it, included your Ctrl-C and the normally connected to "stop and go background" Ctrl-Z.

The best strategy is simply press Enter and wait for the error:

[romano:~] 10 % passwd                                               
Changing password for romano.
(current) UNIX password: 
passwd: Authentication token manipulation error
passwd: password unchanged

I've found the best way to kill su during entering of an incorrect password is Control+U followed by Control+D. This should avoid annoying delays. You can also just clear the input with Control+U and re-try typing the password in.