move the on_halt call into on_idle instead of from ISR
fix issues with timing of when flush happens
on abort do not issue flush when queue is full
when halted and waiting for soace in queue discard waiting block
make On_HALT indicate if it is halted or released