using cancellation link after event start date?
By chance I also recently discovered this limitation, and opened a ticket for it.

I wrote the code to add this feature, but it requires a change to the CiviCRM schema, so I don't recommend patching yourself unless you know what you're doing.  I wrote a patch to clean up checking whether a participant can self-update.  Once that's approved, I'll submit a patch to allow negative values for the "hours until cancellation" field.