here are my thoughts..
1) Is anyone aware of any punycode converters (particularly in libraries) that produce bad results?
There may be made implementations,, however its quite standard in programming libraries, which most of software development people are supposed to use. One of the good starting point may be https://docs.oracle.com/javase/7/docs/api/java/net/IDN.html
2) Is there a test suite that can be used to test Punycode converters?
I think, if ACE can be converted back to same Unicode is good test. And almost all
online converters provide bi-directional of Unicode<->ACE. People can try
tool and
3) Would the source of input (typed, cut/paste, input from a data file) make any difference? This probably has to do with RTL scripts
Bad Input can make a difference, this is true for every application. While dealing with RTL, there are some more rules to be followed and its related to input, may not be alone relevant for punycode.
Thanks.