Actually, 15 bytes
This is based on Dennis' Jelly answerDennis' Jelly answer. 0 is terminating, 1 is purely periodic, and 2 is eventually periodic. Golfing suggestions welcome. Try it online!
▼Ny9u♀%SR♂b╔2@¿
Ungolfing
Implicit input [a, b].
▼ Divide a and b by gcd(a,b).
Ny Get the unique prime divisors of the reduced denominator.
9u Push 10.
♀% 10 mod every member of uniq_p_d.
SR Sort the mods and reverse.
♂b Logical buffer. Converts every (10 % p != 0) to 1, and everything else to 0.
Meaning if 2 or 5 divided b, they are now 0, and every other prime is now 1.
╔ Uniquify the list.
If terminating, return [0].
If purely periodic, return [1].
If eventually periodic, return [1, 0].
Else, (if b was 1), return [].
2@¿ Convert from binary to decimal. Return 0, 1, or 2.
Implicit return.