Increase maximum number of outgoing connections for full node
Issue resolved. I was able to get 16 outgoing full relay connections that are stable using the below changes in code:
Adding below lines in src/init.cpp
argsman.AddArg(&quot;-maxoutfullrelay=&lt;n&gt;&quot;, strprintf(&quot;Maintain at most &lt;n&gt; outbound full relay connections to peers (default: %u)&quot;, MAX_OUTBOUND_FULL_RELAY_CONNECTIONS), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);

int nMaxOutboundFullRelay;

nMaxOutboundFullRelay = args.GetArg(&quot;-maxoutfullrelay&quot;, MAX_OUTBOUND_FULL_RELAY_CONNECTIONS);
nMaxOutboundFullRelay = std::max(nMaxOutboundFullRelay, 0);

connOptions.m_max_outbound_full_relay = std::min(nMaxOutboundFullRelay, connOptions.nMaxConnections);

And maxoutfullrelay=16 in bitcoin.conf. Tried with 20 as well and it works fine.