When tasks take longer than expected, why is it better to defer items during a sprint than to just defer everything you didn't finish on the last day of the sprint?
Early notification of problems
You may find that a particular high risk task encountered problems on day 1 of the sprint. You know you're going to fail, so flagging it to your team lead early on and putting it into the backlog means you've failed fast. You can then carry on with other items while others tackle the problems that caused this task to take too long.
I'd say get rid of the sprint all together But if you're stuck with it, the reason it's better to defer right away is so that the customer can expect it rather than hearing on the last day "oh we didn't do feature x, y, or z"
This is a communication issue. As a developer you'll want to notify management or development lead that you have impediments or things blocking your ability to deliver quickly.
The greatest advantage to communicating these issues early and often are that you can work with your team to 'swarm' the issue and resolve it quickly, or defer it for another sprint or development build.