So international contract and IP law are... complex. It's hard to know even what laws will apply for sure. At the same time, enforcement is difficult and expensive. It's not going to be easy for your American client to bring suit against you for violating the terms, but also it's going to be easy for you to collect if your client doesn't pay because of a dispute. So it can be hard to low dollar value international contracts where you both make money and are adequately legally protected. That's just a fact of life for international business.
Also, I really don't know how much legal advice costs in Hong Kong, but for < $1000 I don't think this is a situation where you will be able to have your own lawyer redline the contract and send it back, then expect them to come back with a revised document and so on. So I wouldn't go to a lawyer yet. Remember: a lawyer is going to help you understand legal jargon, know what contract terms might be difficult to enforce, and what implicit terms you might be agreeing to without noticing (things like: are you providing an implicit warranty that could leave you on the hook for a lot more development?) But if the plain terms of the contract are not something you want to agree to, no need to involve a lawyer at all. It's your call, but for $1000 I wouldn't consider any sort of long-term restriction or anything that would cause me to turn down other work at all. I'd tell them you think these terms are unreasonable, and to come back with something that is a lot more scoped to "I do the thing, you pay the money" If they say no, just walk away. If they say yes, take that document to a lawyer to get advice.
If you are going to be doing lots of small jobs like that, ideally what you would do is get a contract template that works for you, get vetted by a lawyer, and insist that clients take it or leave it. That's the most efficient way to do it. But if your clients are big companies, they are going to have a hard time accepting that. They are going to want you to start with their contract and negotiate from there. In that case, consider just adding a zero to your rates to cover the extra costs.
The good thing about doing small jobs for a big company is that once you have worked with their legal team and gotten mutually agreeable contract terms, you may have a good in for future work, due to the difficulty and expense of getting new contractors "in the system". But don't underbid a contract expecting future work from the same client, make sure the first contract is going to cover your expenses, including any one-time expenses such as legal fees.