Nate
Using curve types would be an ingenious way to integrate it, while also keeping the UI clean and easy to understand (no small thing).
I also agree, as you mentioned, requiring different types of curves may prove more versatile.
I'm unaware on how complicated/conflictive this implementation would be, but I think the best bang for the buck in terms of versatility of use would be to treat "clear keys" as an "intro and outro" special key though.
For bone transforms, the key would functionally act as "0" on additive, and look as "0" position in the graph. On non-additive this would act as a "return" position over whatever is active before the animation.
Goes without saying then this could then be set to stepped, linear, or Bezier (may want to lock the handles as horizontal? I don't know what a "clear 110% or -50% from clear to specific position would even play like). This also potentially solves the issue for attachments, inherit, draw order, sequence I think, or at least makes everything simpler to understand.
Given "clear" does nothing if not used in conjunction with other keys within the animation, I don't think it would require buttons on the tree or anywhere else but the dopesheet, given it's only clearing a timeline for a single element within the animation it's set)
Here's a mockup example:


The clear key positions (1, 5) would always match the setup position. In additive this behaves exactly as "0" (sorry, base setup value, I don't know what to call it).
In non-additive, 1 mixes into 2 (intro), and 4 mixes into 5 (outro).
(perhaps clear key could contain values for next/before key to mix into them, since it's not exactly moving value to value? I don't know the specifics of how this works, apologies)
It stands the key could be applied anywhere on the timeline, or turn a "0" key into a clear key. If the clear key is applied while on the same frame as an existing key not equal to "0", the button could be greyed out or return an invalid action error, rather than replace an existing key as "0".
This goes for any other keys, including draw order, transforms, FFDs... Clear could always require the key to be "setup value" to avoid confusion.
Another way to look at it is: clear key as a "setup value" regular key with an added special condition.
Personally, I would find clearing attachments the most useful, but, I feel something like what I presented is a more versatile way to exploit it, since it has plenty of use for non-additive animations to gently mix into other active animations, a nice option to have.
At the end of the day you're the one with all the backend know how and I don't wanna be presumptuous on what the best implementation method or application is. Last thing I want is to help send you down a rabbit hole that overcomplicates your work.