First off, As far as I know, a bank cannot put an indefinate hold on the funds. You need to ask your bank to see a copy of their Funds Availibity Policy. (Reg. CC) It should tell you how long the funds will be held. I have never heard of the affidavit that you referenced, but that does not mean that that bank doesn't have that policy. I don't think that this is a law, but a policy of the bank, but then again, different states may have different laws. I am in Washington State.
My bank does not except 3rd party checks either, (Pay to the order of endorsements) but we will make exceptions if it is a known customer. Also, I had a question, did they mail a "notice of hold" to you? If so, what was the reason given for the hold?
BTW... if they have a notary at the bank, it may just be easiest to have your friend go in and just have them fill out the affiavit... save yourself stress, and get your money! Hope this helps.
"Say what you mean, mean what you say, but don't be mean when you say it."