I have voted in every election since I was old enough to vote, including all primaries as well as State and local elections... I also don't believe in sending a message to 'teach a lesson' and one time in my life I erred and voted for Perot and will never repeat that mistake again. A vote for third party is a vote for the other side.
There are other ways to send messages, such as calling their office and telling them what you think directly,and/ or refusing to donate.
I have infrequently voted for less important candidates who were not Republican. However, I generally vote for the Republican NOT because they have an R after their name, but because they are usually the more conservative AND viable candidate who most closely shares my views.