If you pre-compute everything except for the bits that depend upon the Manipulate
variable, it gets much faster. This code is not so pretty. I didn't try to make the most elegant refactoring that does precomputation...just one that I could easily refactor starting from your code. But, on my computer, the slider pretty much works in real time.
DynamicModule[{BasicTileCoords, f, cols, centerpoint, ψ,
layering, pts1, pts2, pts3, n},
BasicTileCoords = {{0, -1}, {0, 0}, {Sqrt[3]/2, 1/2}, {Sqrt[3]/2,
0}, {Sqrt[3]/4, -1/4}, {Sqrt[3]/4, -3/4}};
cols = ColorData["BlueGreenYellow"] /@ Range[1, 0, -1/4];
f = 3 Piecewise[{{0, # < 0}, {1/2 - 1/2 Cos[#],
0 <= # < π}, {1, # >= π}}] &;
layering = Append[Riffle[Reverse[Range[5]], -Reverse[Range[5]]], 0];
{pts1, pts2, pts3} =
Table[centerpoint = {3 Sqrt[3]/4 i, 3/2 j + (-1)^i*3/8};
ψ = f[n - π/(3 Sqrt[7]) Norm[centerpoint - {0, 3/8}]];
N[centerpoint + # & /@ (RotationMatrix[
2 t π /3].(ψ {Sqrt[3]/4, -1/4} + #) & /@
BasicTileCoords)], {t, 1, 3}, {j, layering}, {i, layering}];
Manipulate[
Graphics[{EdgeForm[
Directive[JoinForm["Round"], cols[[4]], Thickness[.006]]],
{{FaceForm[Directive[cols[[1]]]], Polygon[Dynamic[Flatten[pts1 /. n -> θ, 1]]]},
{FaceForm[Directive[cols[[2]]]], Polygon[Dynamic[Flatten[pts2 /. n -> θ, 1]]]},
{FaceForm[Directive[cols[[3]]]], Polygon[Dynamic[Flatten[pts3 /. n -> θ, 1]]]}}},
PlotRange -> {{-5, 5}, {-5 + 3/8, 5 + 3/8}},
Background -> cols[[5]], ImageSize -> 540], {θ, 0.,
2π}]]