A bill of rights.
As an ISP you may carry packets or provide content/services not both.
To avoid the temptation to throttle your competitor's service
You may not inspect the packets in any way. Not for content. Not for type. Not for Address.
All packets are equal, It does not matter where they go, or what they are for.
You may charge according to bandwidth but you must provide the promised bandwidth for the price.
This allows for competition.
The best solution, I think, would be to charge for packets per minute. each minute the ISP would handle the number of packets promised for you then drop the rest. At the end of the minute your account is charged the current fee. If you pay a low fee and only get 1000 packets a minute (344 mb/sec divided between up and down).
In fact the ISP could have a preference setting that lets you change the number of packets/price as you desire. Need to download that Linux ISO? Kick up your "packets per minute" to a higher rate.
With this sort of plan there are no "ohoh used up my bandwidth for the month on the 15th" or "Oh oh look at the bill - I must have went over my bandwidth limit." moments to deal with.
This will be the extent of any law regarding Net Neutrality.
No giving government that nose under the tent to start it's own censorship. Remember no inspecting of packets at all. Not for content. Not for address.
Perhaps we don't need article 1 if article 2 is rigorously enforced.