I believe this is the intended behavior, of the node. So you will likely want to create a timeout.
Here is an example that should make it really simple:
[{"id":"0743122b2439fa37","type":"inject","z":"45d8e1463946ef85","name":"","props":[{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"pass","x":230,"y":300,"wires":[["0e408a2aab18b784","26a55044a28e7bfd"]]},{"id":"26a55044a28e7bfd","type":"trigger","z":"45d8e1463946ef85","name":"10 sec timeout","op1":"","op2":"No unread emails found","op1type":"nul","op2type":"str","duration":"10","extend":false,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":520,"y":380,"wires":[["bc2a0140dc3f0cd8"]]},{"id":"1ac67b2a37f62e51","type":"change","z":"45d8e1463946ef85","name":"","rules":[{"t":"set","p":"reset","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":520,"y":320,"wires":[["26a55044a28e7bfd"]]},{"id":"0e408a2aab18b784","type":"function","z":"45d8e1463946ef85","name":"email node","func":"// this is just a placeholder\nif (msg.topic === \"pass\") {\n node.send({ \"payload\": \"Unread email found\" });\n};\nif (msg.topic === \"fail\") {\n // commented out so no message is sent if unread email is not found\n //node.send({\"payload\":\"No unread email found\"});\n};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":510,"y":260,"wires":[["1ac67b2a37f62e51","bc2a0140dc3f0cd8"]]},{"id":"a4899a92e802be9a","type":"inject","z":"45d8e1463946ef85","name":"","props":[{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"fail","x":230,"y":340,"wires":[["0e408a2aab18b784","26a55044a28e7bfd"]]},{"id":"bc2a0140dc3f0cd8","type":"debug","z":"45d8e1463946ef85","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":750,"y":320,"wires":[]}]