What method of software protection do you recommend simply to make sure your software is not too easy to use without paying, but is not too annoying for honest paying customers?
This is very much going to depend on the type of software you are writing. If you make $30K engineering software there will be a specific expectation by the customer that you use a system they already know about. If on the other hand you are selling an application to home users your criteria will be quite different.
Some of this will also be personal taste. Each developer will draw the line between security and convenience in a different place. Since you'll be supporting customers the system needs to draw that line in a place you're comfortable explaining to your customers.
The cost of the system will also play a part as some of the commercial solutions are expensive.
My recommendation is find one you think strikes the right balance and does not have a lot of up front cost. Don't get too committed to it (low up front financial and integration cost) and try it for a few months. If it does not suit you you'll still have time to change to a new system. Sometimes you start having your customers use one of these you find it's not really what you wanted.
Some of the ones I've used include: