I personally think it's smarter to max heroes before walls.
If you finish your walls before heroes, then all that extra gold/elixir that you can't spend while DE farming will make your base a magnet for storage raiders, which will mean you have a higher chance of getting your DE raided as well.
If you finish your heroes before walls, you will still be able to do walls, but just a bit slower and generally you will only have DE in your base, which makes your base less of a target. Once you max your heroes you can at least still build DE heavy fun armies to finish off walls with your maxed heroes. Definitely the fun option and the easiest way to improve raiding abilities.
Loonion from M3 to champs to max heroes and do the vast majority of lavas.
Surgical hogs and Goho'd from C3 to champs to finish off lavas.
I focused on keeping both my heroes asleep non-stop as much as I could. I did not do a perfect job at it, but I did get my heroes to level 30 right at the same time that all my other buildings finished (which blows away the theory that heroes take longer than your other buildings). I never kept a builder free for walls (so I always had 2 builders on heroes and 3 for other upgrades), but I did try to have a builder free up every day if possible (sometimes I had to wait 2 days). I spent all that time in Crystal league just barching with no heroes and usually no spells. I was about 1/3 done with lava walls at the time my heroes maxed so I got to use them to get the rest of the resources I needed. It is certainly possible to get a lot more walls done than I did, but my focus was just on keeping my heroes asleep. I only played enough to get the DE I needed.