tryPutTMVar hack - why is this blocking?