Last k digits of Powers of 2

Python, 166 chars

k,f,g=1,4,16
i=j=2
n=input()
m=10**n
a=lambda c:c('')-1-i or c('1')+c('2')-c('')+1
while i<=n:
 while a(str(j)[-i:].count):j,k=j*g%m,k+f
 i,g,f=i+1,g**5%m,f*5
print k

Wolfram Language (Mathematica), 78 76 57 55 bytes

(x=0;While[Max@Abs[2IntegerDigits[2^++x,10,#]-3]>1];x)&

Try it online!

IntegerDigits[a,10,r] generates a list of the r last decimal digits of a. Subtract 3/2 and check that they are all either -1/2 or +1/2.

Timing check: 20 seconds on TIO for r = 1 .. 10.

Wolfram Language (Mathematica), 102 95 91 89 bytes

k/.FindInstance[Mod[n=0;Nest[#+10^n(2-Mod[#/2^n++,2])&,0,#]-2^k,5^#]==0,k,Integers][[1]]&

Try it online!

This solution is much longer but much faster. By taking the path suggested in OEIS A147884 to go via OEIS A053312, as well as using FindInstance magic, TIO manages to compute r = 1 .. 12 in less than a minute.