How can your users trust that you do not keep a copy of the private key?
I think it's something like the user holds private key A, publicizes public key A, and requests private key B such that public key A+B has the desired characteristics and private key A+B is only known if you have private key A.
Would a USB ASIC give better performance?
If that ASIC is designed to solve that same hash function, yes.