My main goal is to have tests fail as soon as things go wrong rather than the usual thing where failures in browser testing of single page web apps tend to manifest as timeouts.
Second goal is to have really useful errors so you don't have to try and infer what went wrong quite so often.
In terms of style I want to be able to use async/await, my favourite assertion library and a normal test runner. Basically not nightwatch, not anything selenium/chromedriver related. Also a knowable, sane system.
It is a pity that puppeteer would basically lock you into chrome, but I've already seen a Firefox headless wrapper that mimicks the API. Maybe Microsoft will catch on and do the same? I feel strongly that Selenium/Webdriver is a dead end.
--