Try this:
Set var "Challenge_Success" = 0
Set var "Challenge_Timer" = 0
If ...
Wait for clean room
Go to Skip to End
If End
Label Loop
If ...
Wait until var "Challenge_Timer" <= 20
If ...
Wait for entity type Roach,7,9,7,9
Set var "Challenge_Success" = 1
Go to Break out of loop
If End
Set var "Challenge_Timer" + 1
Wait 0
Go to Loop
If End
Label Break out of loop
Wait for clean room
If ...
Wait until var "Challenge_Success" = 1
Challenge completed Beethro Kicks Butt
If End
Label Skip to End
This will award the challenge the turn after you clear the room as long as a roach enters square (7,9) by turn 20 at the latest. Change the numbers as you see fit.
To copy the above, highlight it, copy it to your clipboard, then press Ctrl+Shift+B inside the character script editor in-game.
There is a way to get the challenge be awarded directly on the turn the room is cleared, but it has some pitfalls that cause it to not work when certain entities are in the room, so I'll post it separately.