Let me put this concrete proposal on the table.
The problem:
With the current set of crashkernel= options we are asking the
distribution installer to perform magic. Moving as much of this logic
into a normal init script for better maintenance is desirable.
My proposal:
Implement crashkernel=max which reserves as much memory as is
reasonable for a crash kernel, without seriously affecting stability,
performance, and reliability.
As an initial approximation I would use a 32nd of low memory.
In addition implement:
/sys/kernel/crash_size
That can be written to (with enough privileges when no crash kernel is
loaded) reduce the amount of memory reserved by the crash kernel.