My WordPress editor of choice is Open Live Writer. It’s based on the now-abandoned Microsoft Live Writer, and is open-source as well as free.
I compose everything offline on my laptop. It has a preview function so I can see (roughly) how it’s going to look once I post it.
It has a few glitches: if I insert a graphic, it uploads 2 copies of it to WordPress. My workaround is to upload a draft to WordPress, then go online to fix any formatting errors and to add any images I want to use.
Again, it’s not perfect, but it works for me.