[BUG] wqueue: perform proper timeout comparisons with wrapping values

With wrapping keys, we cannot simply do "if (key > now)", but
we must at least do "if ((signed)(key-now) > 0)".
diff --git a/src/task.c b/src/task.c
index 16eea64..2c9e0d7 100644
--- a/src/task.c
+++ b/src/task.c
@@ -148,7 +148,7 @@
 			struct eb32_node *next_eb;
 
 			task = eb32_entry(eb, struct task, eb);
-			if (eb->key > now_key) {
+			if ((signed)(eb->key - now_key) > 0) {
 				*next = task->expire;
 				timers.first = task->expire;
 				return;