Make rs.cancel() return a rejected promise if used while locked