I wish saltstack would be more popular. It's so far the best one I used (I didn't use Puppet and CFEngine).
As for the second concern, you actually kind of can:
https://docs.saltproject.io/en/latest/ref/renderers/
yaml never bothered me, so I just used it, but you could use a different one. I suppose none of the ones from the list would make parent poster happy, but then one could write own renderer.
Came too late, so can't edit anymore, but here's an example of a custom renderer, that allows writing states using java properties format: https://github.com/saltstack/salt-contrib/blob/master/render...
They subsequently offered an ssh-based option for those that wanted the poor performance of Ansible across larger fleets, or where agents were not palatable.
Unfortunately it doesn't address your second concern, as it also uses yml + jinja.