Benedikt Reinartz, who maintains the Erlang kernel, has opened a PR on jupyter_client to add a new message type and a new field in the kernel.json kernelspec.
If the kernel.json contains "interrupt_mode": "message", then an interrupt would be delivered to instances of this kernel on the control socket, as a new message type "interrupt_request" with no message content.
Interrupting with SIGINT, as we already do, would remain the default for kernel types that don't specify this, or explicitly specify "interrupt_mode": "signal".
This has some overlap with the stalled 'kernel nanny' proposal: the nanny process would be tasked with sending signals to the kernel (among other things), and one or more message types would be needed for the frontend to ask the nanny to send a signal. Since that's not going anywhere fast, though, I'd rather not let it block the relatively simple addition of allowing interrupts to reach the kernel as a message.
Thomas