BGP Load Balancing Not as expected

Hello

I have two Gateway 10.x.x.x and 20.x.x.x
I have done BGP load balancing with prepanding of 20.x.x.x In normal scenario traffic goes through both gateways.

However if 10.x.x.x reaches its limit, e.g it has WAN max link 20Mbps and if all 20Mbps is in use, and same time 10.x.x.x is only 10 Mbps used ( it has 20mbps capacity) , still the traffic will go through 10.x.x.x and connections suffer from slow internet.

In Load Balancing what happens if one gateway reached its limit ?
How can I configure if 1 WAN is reached limit, then all new traffic should go to WAN2 ?

Depends on how large the subnets are you are advertising and if it is public traffic. There is no mechanism in BGP for MIkroTik that can move traffic to another link if another is at capacity.

You could look at some scripting, but you need to have large enough subnets advertised into the global table to be able to move traffic around similar to Optimized Edge Routing in Cisco.