Children need consistency, so try setting a homework plan and sticking with it consistently over a long period of time. You've found that giving your son a 30-minute break when he gets home doesn't work well, so don't do that anymore. Once your son gets home, give him 10 minutes to get settled, then start on homework. Have one place in your house that he does homework every day; that might be the kitchen table, the living room floor, wherever he works best. Just as long as there is no TV on, it doesn't matter where homework gets done.
Give your son a time limit to finish his first assignment. On Mondays he can have 20 minutes (or 30, or whatever works) to get his spelling words written. Set a kitchen timer, an alarm clock, or your microwave to go off at the end of that time. When he has worked for that amount of time and completed that assignment he can have 10 minutes to have a cookie and milk or another snack, then he must get back to work. Keep doing this for each assignment.
All people respond better to rewards than punishment. As each assignment is completed, put a check mark or a sticker on a chart. When all work is completed for the night, your son can earn a walk around the block just with you or 15 minutes of computer time. When he has 20 (or whatever number works) stickers or check marks he can earn having a friend over to play on the weekend.