maybe try looping GetEntityExists("namehere") if it doesn't exist, assume it has been consumed.
for example
void OnPickup(string &in asEntity , string &in asType)
{
if(asType=="OnPickup"){ // Player has picked up the potion
AddTimer("EntityExists" , 0.1f , "DoesEntityExist");
}
}
void DoesEntityExist(string &in asTimer)
{
if (GetEntityExists("")){
// player hasn't drank the potion
AddTimer "loop" , 0.1f , "DoesEntityExist");
}
else {
// player has drank it! - remove the timers and end the loop! do what you want to do here!
}
}