transition from academia to industry
1) You should start applying for jobs about 9 months before your current job ends.  Most employers will want you to start immediately, or within a few months, and might favor candidates who can do so.  Starting 9 months ahead is basically allowing time for the job search process, application processes, the interviewing processes, and employer decision-making processes.  All of those can take much longer than you'd expect (and much longer than is necessary).  You might be very efficient in your processes, but employers can be very slow in communicating with you, starting the interview process, and (worst of all) making hiring decision.

I say "about 9 months" because this is a very rough estimate.  You might do well to start a year ahead and you might succeed by starting 6 months ahead.  But don't start 3 or less months ahead.  There are many factors you can't control and you are not in a position to go many months without income.

If you get lucky and get an interview 9 months before you are available, someone might ask why you are interviewing "now".  Just tell them your job search plan and your priorities.  If they can't hold the position open for 8 months, then move on.

2) I'd say that your chances of getting a programming job are about zero if you have no previous experience or training in programming.  There are just too many other people who have it.

Your best chance is to apply for jobs that require PhD in Math and where you'd work in groups with programmers.  For example, you might find work in the field of cryptography as a mathematician and then get training and experience in programming along the way.  Same goes for jobs in Econo-physics (quant finance &amp; trading).

If you have one year before you change jobs, I'd recommend taking one or two introductory programming courses -- Python and R are good choices.

You should also build social network relations with as many academic-to-industry mathematicians as you can, so you can learn who is hiring and how that maps back to your particular knowledge and skills.

3) I'm not familiar enough with (technical) publishing to know salaries.  I was recently a technical editor on a book, but that was a contract position and the pay was low for the hours I put in.