I don't think it is a bug, you can signal such wait state, you just need to look up for it first.
String executionId = processInstance.findActiveExecutionIn("wait state").getId();
and the use this executionId when signaling. Timer will be destroyed as well.
HTH