Estimates are now more stable during generation and cancellation

No more vanishing estimates when generation is cancelled, with improved revision handling and persistent action access throughout history.

Bug Fixes

Cancelling a generating estimate now reliably preserves your previous revision — estimates no longer disappear mid-workflow. We've also fixed duplicate revision numbering and made estimate actions always accessible when viewing historical revisions, so you can start a new revision from any point in the estimate's history.