I was never able to get Roomba 980 Wifi Connectivity Reverse engineering working for me.
I was in a similar state of virtual switches and IFTT so I starting working on my own DH. I modified the simulated button DH, creating buttons for Start, Pause, Stop, Dock and a manual reset; leveraging webcore to send IFTT webhooks based on the respective button press. I also added a valuetile to report a quasi-status. Unfortunately, the status was based on intended action rather than actual activity.
So for help with the feedback, the irobot IFTT channel has 3 triggers: mission complete, robot started and robot stuck which can act upon a ST switch, lock, or alarm so I added those capabilities to get feedback.
Robot started = switch on = status of Running
Mission Complete = locked = status of Job Complete
Stuck (error) = strobe alarm = status of Error
but there is still no way to confirm receipt of paused, stopped, or docking commands/status within ST.
Downside is that you still need to use IFTT and webcore, no direct interaction. Upside is that I was able to downsize to only one virtual device and regardless of how you start Roomba (via ST, Google Home, or manually) the status will be updated in ST. (Sorry, don’t have Alexa, Google Assistant can talk directly to Roomba).
Just updated the feedback mechaisms so I want to fully test before I share code but screenshots below:

