I had a similar experience. After swapping out robot with pytest on a large project I was at least 4x as productive.
The one thing I did like was the separation of concerns between a "readable" specification written in a non turing complete markup language and test code. I find pytest tests difficult to parse.
The problem is that I found the markup language they built difficult not as expressive as I needed and the tooling around the framework made things difficult to debug.
In reaction to robot/gherkin I wrote my own equivalent framework based using strongly typed YAML with an emphasis on fail fast/crystal clear error messages:
https://hitchdev.com/hitchstory/
(in the process of creating it I discovered that YAML really needs type safety and built a library called strictyaml to underpin it).