Some more thoughts on this, I also took the time to enumerate what a FSM machine for the kernel would look like. The goals of this FSM are as follows:
- Convey relevant information to the user about the state of the kernel
- Compliment the limited set of states provided by the Jupyter messaging protocol