Have you looked into SaltStack at all? The default is to write states in YAML+Jinja but you can change it to use pure python, or a PyObjects renderer that gives it a very pythonic API.
Not necessarily. Bike shedding refers to arguing about trivial issues. Naming can have a huge impact on how something is perceived so I wouldn't call it trivial.