A method of operation in a non-volatile memory system, comprising: starting, in the non-volatile memory system, execution of a first memory operation from a first queue, the method characterised in that it comprises; concurrently with starting execution of the first memory operation, starting a first timer in the non-volatile memory system, wherein the first timer is set to expire after a first predetermined time interval; and after starting the first timer, in accordance with a determination that the first timer has expired, performing one or more operations in the non-volatile memory system including: determining whether a second queue contains at least one memory operation for execution; in accordance with a determination that the second queue contains at least one memory operation for execution, performing one or more operations including: suspending the first memory operation from the first queue; executing a second memory operation from the second queue; and after completing execution of the second memory operation from the second queue, performing one or more subsequent operations; and in accordance with a determination that the second queue does not contain at least one memory operation for execution, performing one or more operations including: restarting the first timer, wherein restarting the first timer sets the timer to expire after an interval equal to the first predetermined time interval; and continuing execution of the first memory operation from the first queue. starting, in the non-volatile memory system, execution of a first memory operation from a first queue, the method characterised in that it comprises; concurrently with starting execution of the first memory operation, starting a first timer in the non-volatile memory system, wherein the first timer is set to expire after a first predetermined time interval; and after starting the first timer, in accordance with a determination that the first timer has expired, performing one or more operations in the non-volatile memory system including: determining whether a second queue contains at least one memory operation for execution; in accordance with a determination that the second queue contains at least one memory operation for execution, performing one or more operations including: suspending the first memory operation from the first queue; executing a second memory operation from the second queue; and after completing execution of the second memory operation from the second queue, performing one or more subsequent operations; and in accordance with a determination that the second queue does not contain at least one memory operation for execution, performing one or more operations including: restarting the first timer, wherein restarting the first timer sets the timer to expire after an interval equal to the first predetermined time interval; and continuing execution of the first memory operation from the first queue. determining whether a second queue contains at least one memory operation for execution; in accordance with a determination that the second queue contains at least one memory operation for execution, performing one or more operations including: suspending the first memory operation from the first queue; executing a second memory operation from the second queue; and after completing execution of the second memory operation from the second queue, performing one or more subsequent operations; and suspending the first memory operation from the first queue; executing a second memory operation from the second queue; and after completing execution of the second memory operation from the second queue, performing one or more subsequent operations; and in accordance with a determination that the second queue does not contain at least one memory operation for execution, performing one or more operations including: restarting the first timer, wherein restarting the first timer sets the timer to expire after an interval equal to the first predetermined time interval; and continuing execution of the first memory operation from the first queue. restarting the first timer, wherein restarting the first timer sets the timer to expire after an interval equal to the first predetermined time interval; and continuing execution of the first memory operation from the first queue.