OpenAI o3 optimized the recalc method, should be faster now. Also changed queueMicrotask to setTimeout, which might block less.
Discussion
Consecutive calls to recalc while it's still in progress now return the same promise instead of starting a new operation