Ah, I forgot to comment on "drawback":
As it is, the delay is pretty short in `hwtimer_spin`. The time spent for interrupt fiddling is added to the delay for every run, while the potential interrupt only occurs sometimes. Therefore I'd say it asymptotically decreases the precision of `hwtimer_spin` ;-)