core/msg: use disable/restoreIRQ

* needed to change internal `msg_send` to allow external disabling of interrupts

**Disclaimer:**
This is not beautiful, but I thought it's better than the status quo and might serve as a starting point for discussion.
Is that something we want to fix in a separate PR? At least this PR fixes things as it is (and this particular issue is not introduced by it).