It’s not as easy as “fix it”.
Long-ish explanation of why it's hard
With dom0-provided kernels, dom0 is able to simply provide any additional kernel parameters directly to the guest kernel before booting it. When using an in-VM kernel, dom0 can’t inspect the guest filesystem, extract the kernel, and then boot it the same way, that would be a huge security risk (opening up substantial filesystem code attack surface). Instead, dom0 loads a bootloader (pvgrub) into the guest, and then the bootloader confined within the guest finds and loads the VM kernel. This means that to get boot modes working, dom0 has to be able to pass kernel parameters to the guest kernel via the bootloader. This is very non-trivial; even though the bootloader part of the code has been merged, there is still substantial work remaining to make Whonix guests’ grub.cfg actually able to work with this, and then to make Qubes OS itself able to pass the parameters to the bootloader properly.
Probably this feature will land in Qubes OS R4.4. For the time being, dom0-provided kernels are the only way for boot modes to work, and boot modes are the only way to get sysmaint mode properly working. If you want to use an in-VM kernel, you should either use a Qubes Root Console when necessary, or consider removing user-sysmaint-split.