I found the solution to my AVR + WiFi101 library problem here.
IMO, PlatformIO should change the default for this lib_archive setting from ‘yes’ to ‘no’. WiFi101 is a very commonly used library in the Arduino AVR space. The Arduino WiFi shield and the Adafruit WiFi boards are all based on this chip and library that uses “weak” bindings at link time. Surely it can’t be the only Arduino library that does this? The worst part is that the library compiles with the lib_archive set to ‘yes’ or ‘no’, but it hangs in a loop when attempting to connect to the AP unless you override lib_archive to ‘no’. This is a serious failure to deliver seamless portability from the Arduino IDE to PlatformIO. I struggled with this problem for months - giving up on PIO several times. Please seriously consider making PlatformIO fully Arduino IDE and toolchain compatible even at the cost of some inefficiency.