Why is the timing so unforgiving?
Because an extension is granted against a stay that is still running. Once the stay has ended there is nothing left to extend, and what you have instead is an overstay to resolve.
The practical margin is smaller than people assume. Leaving it to the last two days removes any room for a query or a missing document, and queries do happen.
- Apply while the current stay is still valid
- Leave several days of margin, not hours
- A query mid-application eats the remaining time
- After expiry it becomes an overstay matter instead