So umm, it sounds like you made attempts to change the situation and there was no improvement forthcoming. Give notice of 2 weeks (3 weeks if you are really broken up about it) and move on with life. You are not paid well, don’t have enough skin in the game, and aren’t working for a charity. Whatever loyalty you have for your employer should be tempered by the fact that he did not value the opinions you have expressed previously. When you leave, you can either be honest or just say you are moving on to new opportunities that will help you move forward with your career and your ability to take care of your family. The latter should ensure your ability to get a good recommendation for your next job.