Use pick, not choose, to cancel timeout thread
Don't create timeout thread needlessly
Refactor
Don't `sub` unless needed
info to notice
Capitalize signal names for consistency