Ternary Flags? Or possibly cancelling flags
This is not available in the Flag module (as you already know) and won't be available in the future (Issue: Flag States).  I have not seen an add-on module that will allow you to do this either.

An easy way would be to use Flag with Rules.  You would have to create multiple flags to use, and when a user flags one of the states, have set rules to unflag the other 2 states.

Another option would be to write a custom module.  Maybe even utilize the Voting API