Seriously, I can't imagine it would be a ton of work to set up a RADIUS-type server that would limit a given MAC address to an hour of access per day (I'm sure some products like Meraki's already have this or something similar). If the user wants to squeeze more time out of the wifi, they have to pony up.
I'm totally one of the people described in this article, except that I'm doing it in Seattle. If the cafe I went to every day wanted to charge me for taking up a seat for hours at a time, I'd happily pay them a monthly fee. It's cheaper than getting an office or joining a coworking space, after all.