test_cancel: make tests a little less timing sensitive

- increase resolution of sleep/check in loop:/
- add 0.5s more tolerance to tests
diff --git a/serial/urlhandler/protocol_loop.py b/serial/urlhandler/protocol_loop.py
index 5bba4d3..7bf6cf9 100644
--- a/serial/urlhandler/protocol_loop.py
+++ b/serial/urlhandler/protocol_loop.py
@@ -189,8 +189,8 @@
             # must wait so that unit test succeeds
             time_left = self._write_timeout
             while time_left > 0 and not self._cancel_write:
-                time.sleep(min(time_left, 1))
-                time_left -= 1
+                time.sleep(min(time_left, 0.5))
+                time_left -= 0.5
             if self._cancel_write:
                 return 0  # XXX
             raise writeTimeoutError
diff --git a/test/test_cancel.py b/test/test_cancel.py
index ce030a3..daab1ce 100644
--- a/test/test_cancel.py
+++ b/test/test_cancel.py
@@ -45,7 +45,7 @@
         self.s.read(1000)
         t2 = time.time()
         self.assertEqual(self.cancel_called, 1)
-        self.assertTrue(0.5 < (t2 - t1) < 2, 'Function did not return in time: {}'.format(t2 - t1))
+        self.assertTrue(0.5 < (t2 - t1) < 2.5, 'Function did not return in time: {}'.format(t2 - t1))
         #~ self.assertTrue(not self.s.isOpen())
         #~ self.assertRaises(serial.SerialException, self.s.open)
 
@@ -89,7 +89,7 @@
         self.s.write(DATA)
         t2 = time.time()
         self.assertEqual(self.cancel_called, 1)
-        self.assertTrue(0.5 < (t2 - t1) < 2, 'Function did not return in time: {}'.format(t2 - t1))
+        self.assertTrue(0.5 < (t2 - t1) < 2.5, 'Function did not return in time: {}'.format(t2 - t1))
         #~ self.assertTrue(not self.s.isOpen())
         #~ self.assertRaises(serial.SerialException, self.s.open)