docs: add missing docs
chore: move firmware to firmware/ folder
feat: use task_result to indicate blocking There should be no spin loops inside of the interrupts, so this change removes them, and instead uses a result system that has WOULD_BLOCK result. When this result is returned, it is expected there was no side-effect and the function can safely be reran later.