Beh, colui (a me da oggi non è permesso nominarlo
e se lo faccio sarò anche bannato...
quindi ne approfitto e vi saluto subito, perché sarò bannato sicuramente, visto che qualcosa qui comincia a starmi sul cazzo
) suggerisce di non usare nemmeno mai il DoEvents.
Ti assicuro che non solo anch'io ho usato spesso una "struttura" analoga, se non uguale, alla tua con altri linguaggi ed ambienti, ma che l'ho usata anche in b4a mi ha funzionato. E' però possibile che dipenda forse dalla velocità del dispositivo usato; forse mi ha funzionato su un dispositivo lento (si potrebbe pensare il contrario).
Il DoEvents dovrebbe far sì che anche l'intercettazione della pressione del Button venga eseguita e quindi la routine che ne gestice l'evento anche; non ho ben capito se a te risulta che la Button1_Click venga eseguita, ma suppongo di no, altrimenti dovresti ottenere l'uscita dal Loop.
Cmq, in questi casi, l'innominabile suggerisce sempre di usare dei timer (il che è una bella scocciatura, perché il "flusso" diventa sempre un bel casino)