How can I get my iPhone to consistently apply or ignore auto-corrections based on my response?
Non-jailbroken iOS doesn't give much room for auto-corrections adjustment. Settings > General > Keyboard, is about all there is.

It is possible that it is a bug on your system, but on my 4S (5.1), I duplicated your problem only when I didn't tap the balloon itself.