This seemed to help a tad:
1: Mediocre v0.34 502,5/858
2: Mediocre 1.0 355,5/858
A slight improvement from the last test. I think the history heuristic helps since I don't order my moves for things like moving forward/towards the center.
I used an idea from GreKo where you keep track of the history of all moves made (from/to as usual), and also moves that causes a beta cutoff (in GreKo this uses moves that raised the value of alpha, but beta cutoff worked slightly better for me). Then divide the beta cutoff history value with the all-move value.
This should make the history data a bit more sane (essentially penalizing it for making the move without causing a cutoff).
Now the above was all nice, v0.34 went from 62.25% win rate to 58.57%.
But then I decided to try something I've been meaning to for some time. That is cut all moves with a negative SEE-score in the quiescence search. Point being they are extremely unlikely to prove useful for anything, at least that the quiescence search can detect.
And this happened:
1: Mediocre 1.0 352,0/700
2: Mediocre v0.34 348,0/700
Close to dead even score, and most likely enough games to confirm that neither engine would beat the other on a regular basis.
So basically I'm back to the strength of v0.34. And I still haven't even done basic root ordering, which I'm expecting to show significant gains.