IRQ fixups 1

- use jump tables for actions
- launch time consuming tasks outside IRQ
IRQ fixups 2 [broken]

- use hardware IRQ vector
- stabilize timing