My first programming job was at a small contract programming house. When my paychecks started bouncing (the company was about a million overdrawn at Citibank) I kept working when the president of the company paid me through his wife's checking account. There were two main reasons:
1) I didn't have another job
2) The project was about 90% done, and I didn't want to leave the customer stuck (AND I was subconsciously hoping to be hired on there).
If the checks bounce, leave immediately (that day) and contact the labor board - they will get your money for you; and under no circumstances go back as an employee - if they want to pay you upfront as a consultant, and this of course is at your choice.
In any case you sound unhappy at your current job and should get another one at a company you can feel good about working for.