It sounds like he is doing pretty good - thats about where both of my babies were at 4 months.
I think that you should keep doing what you are doing - follow his signals and try to steer him toward a schedule. Have set times, based on his current schedule when you plan for him to eat and sleep. If you are an hour early or an hour late, no problem. Be flexible. You/he will eventually work into a routine.
Don't stress about getting him on a strict schedule. I was pretty wishy washy about it, but my kids worked themselves into a schedule and sleep and eat just fine as toddlers! I found it stressful trying to force them into a schedule, and being a new mom, worried that if I didnt do anything just right, they would have sleeping or eating problems later.
Babies change SO MUCH at this age, and I think in the next two months you will notice a big difference. You are at the most tiring time of being a new mom, but it doesnt last forever and when you look back on it, it will seem like a short amount of time.
Until your baby starts sleeping more, take naps when he does, and try to arrange a schedule with baby's dad or your mom or a friend where they can watch him so you can sleep.
Your baby will be fine and you are doing a good job!