I'd like to add to hanzibal's suggestion that also, the interrupts are delivered on an internal worker thread that runs at Highest priority. You don't really want to do much significant work there beyond hanzi's suggestion of queueing it for further processing on other threads (I'm speaking form personal experience on that; it's confusing, then amusing, to see the rest of the system running in slo-mo just because you're doing work in a button event handler rather than handing it off).
Lastly, as you've observed, the first 'main' thread seems internally to have some other duties. It also has some scheduling oddities, e.g. as reported in this thread (no pun intended):
http://forums.netdui...ngs/#entry50924
I think most folks mask that effect because they sleep, but still it's interesting to be aware of it.
- Anshul likes this