Looks like a fun project, but I’m curious what you actually tested on. There’s real numbers for estimated context switch timing, and you mentioned implementing context switching, but I can’t find any actual implementations of the context switching routine in your code.
You don’t need to do this yourself, but it’s weird to talk about it if you haven’t.