GrauchoMarx:
... wondering why I couldn't connect an Arduino to my Wemos through I2C.
Don't think "Arduino" and "Wemos". Wemos is an Arduino, even if not officially recognised by Arduino Corp, but that's the role it's fulfilling. Think "AVR-Arduino" and "ESP-Arduino". Of the two, the ESP is by far the more capable in 95%+ of applications, and does not need an AVR in the same circuit. The ESP is impoverished in terms of pins, but more can be added through i2c, and that's better done through using i2c expander chips etc, not through using an AVR as the slave, because that adds the complexity of needing a second sketch to run on the AVR. Two sketches means twice the bugs and debugging.
The big problem with communicating between two devices is the need for flow control. With I2C, this works just fine where the slave is capable of instant response as all it has to do is to set - or read - a register.
If the slave has to perform any more complex action, you have a problem as you need a mechanism to indicate to the master when - and if - the action has been completed in readiness for another, and either the master must wait until that action is completed, or it may not take note of the slave's readiness and simply continue issuing instructions which the slave is unable to execute.
Neither of these is satisfactory, and to permit multi-tasking, there must be a primitive in the code to allow the master to determine whether the slave is ready for the next step and if not, turn its attention to an alternate task.