"Publishers are probably costing their audience more in battery life and bandwidth than they are ever making from the ad they are showing". Have you done any calculation? The bandwidth/battery life cost for serving JS negligible. It's nothing compare to fetching/rendering images/videos, or even your mobile OS.
I've done some rough calculations. Just going by bandwidth, I pay $10 / GB (Google Fi). For that page with 500 words that I want to read that's been bloated out with 5 MB of ads and tracking script, I'm paying 5 cents.