SATA Link layer Idle state primitive synchronization failure
Ok, so I have been able to figure out the reason behind this behavior where the host link layer stops receiving SYNCp after certain time. 

The reason is the use of CONTp by the device. After sending SYNCp for certain number of times, the device sends CONTp to imply that the SYNCp is being repeatedly sent by the device. Hence, even though the device link layer is in it's IDLE state and is supposed to send SYNCp continuously, it chooses to stop sending SYNCp after sending a CONTp, which does the same job of repetitive sending of SYNCp. 

For more details, Section "9.4.5 CONTp Primitive" of the "Serial ATA Revision 3.0" spec can be referred.