Master Material Custom Rotate and scale UVs

Hello, my dear friends! I need of your help.

Let I have some rectangular surface (it doesn’t matter: static or procedural mesh) and it isn’t square in general (W, H - width and height: 700 x 450 in my example).
Let I have some texture that I want to use to tile this mesh. This texture has sizes w and h (300 x 100 in my example).

I create a simple material with tiling (UTile and VTile) and rotation (UVRotation) parameters:

Coefficients of tiling are calculated for current surface size: 700 / 300 = 2.3333; 450 / 100 = 4.5
When UVRotation is zero I have correct tiling:

2.JPG

But if I set some UVRotation I have good result only on square surface in material preview:

3.JPG

And in main scene I get deformation:

4.JPG

I understand origin of this deformation, but I can’t understand can I do it at all: to set “start” tiling coefficients (for zero rotation angle), to set rotation and to get rotated and non-deformated texture with right sizes of tiling elements? What should I change in my material?