After looking at this further, I noticed a few issues with the driver. For me at least, I was unable to set most of the config options. For the record my device is on firmware 1.8. I could not change the indicator status or indicator level timeout for example. I couldn't set preset level either. I wanted to add some more customization to the driver anyway so I dove into the code. It seems those config parameters not setting was because the driver was not explicitly setting a size of 1 when it sent the configuration set commands. With that tiny change I am able out to set all of the settings as expected.
For completeness sake, I also changed it to properly set the "supportedFanModes" attribute exposed by the FanControl capability. I also implemented the cycleSpeed function for that command that cycles through similar to pulling the chain on a ceiling fan.
The biggest change I've made is the ability to customize how the 5 Hubitat speeds (low, med-low, med, med-high, and high) are mapped on to the only 4 of the controller. For my particular use case we use speed 3 out of 4 a lot, and the driver was calling that medium-high and I really didn't want to have to say medium-high to Alexa all the time. 
I've added a config option to choose between a few different ways of mapping the speeds...a couple of the options only use 3 of the 4 speeds. We are using that one for our fan since the controller's lowest speed is kinda worthless...so speed 2 is low, 3 is medium, and 4 is high. That also simplifies what we say to Alexa. The supportedFanModes are set properly based on your choice and the cycleSpeed also obeys the choice.
@erniemiller I sent you a pull request with these changes.
If anyone wants to try it straight away, you can find the code with my changes here:
https://raw.githubusercontent.com/vyrolan/ernie-hubitat/patch-1/drivers/leviton-zw4sf.groovy