This actually affects also FreeBSD 8 and 9, the issue is that python errno module does not have ETIME constant on FreeBSD, this constant is used by the new timer module. The patch below fixes this in my tests, PR incoming.
diff --git a/lib/ansible/module_utils/facts.py b/lib/ansible/module_utils/facts.py
index c056404..4c3e5ad 100644
--- a/lib/ansible/module_utils/facts.py
+++ b/lib/ansible/module_utils/facts.py
@@ -49,7 +49,7 @@ except ImportError:
class TimeoutError(Exception):
pass
-def timeout(seconds=10, error_message=os.strerror(errno.ETIME)):
+def timeout(seconds=10, error_message="Timer expired"):
def decorator(func):
def _handle_timeout(signum, frame):
raise TimeoutError(error_message)