Use non-standard Promise.finally

Doesn't make it worse since we already using non-standard Promise.defer