I’m not sure I’m entirely following your question (admittedly, I’m not too familiar with the asLongAs DSL method either). So here’s what I assume you want to do:
While the response’s status is “busy”, continually execute the request.
Now, the first problem I noticed is that you’re saving the text “BUSY” in your session attribute "${BUSY}", when the docs say the session function must return a boolean (for some reason can’t copy+paste into the message, so look up docs yourself).
The resolution may be a simple transformation when saving “${BUSY}”: