I've done fixed pricing, but I also have an hours cap on that fixed pricing. I communicate how many hours are left in the project.
Its less a fixed price deliverable, and more pre-buy some hours for a discounted rate.
If the project is delivered and there are hours left, I came out ahead, if the hours run out, but I'm only a few hours from delivered, I will throw those in for free just to finish out the project.