Should rearrange it like below so you only sleep if the interact method returns true, if it failed then you will be sleeping for nothing.
if (ashes.interact("Take")) {
new ConditionalSleep(3000) {
@Override
public boolean condition() {
return (!ashes.exists());
}
}.sleep();
}