Actually, the USCIS addresses this issue specifically in its "Backlog FAQ" section of its website. According to USCIS, applicants will be notified if their check has expired and be given a chance to send in a new check while preserving their original priority date. Not sure how this will actually work in practice though...
As for expiration on checks, I used a Cashier's Check that stated it was void after 90 days. However, when I called the bank they assured me that it was good for 3 years but that the money was only guaranteed for 90 days. As for personal checks, I thought these were valid for one year, and not 90 or 120 days, but I could be wrong. If I am, and checks become invalid more quickly, USCIS is going to have a fllood of expired checks.