You need to price yourself higher. While $20 for you may be a lot (as I thought it was during school), for a reputable firm this is nothing, and it means you won't be taken as seriously. This manifests as them often wasting your time in terms of developing features they don't really need. This is probably going to happen in any software project, but a higher per hour cost makes people think about your time in a better light.
Also, get a retainer. Took my 18 months to get money from a friend's company once. Retainers get rid of so much BS.