1. if you're going to make multiple event-block locations inside a single variable, use a list variable (ex. {MyVariable::Extra::*}) the * at the end calls for everything in that extra list variable.
2. at the beginning use {portals.SelectedPortal} instead of {SelectedPortal} as this makes it think its its own variable
/sit and /lay are vanilla things that you can do normally. Dancing plugins arent possible as it would need to move your body parts. Plugins can't do that. Mods, maybe. If you want to dance use lunar or badlion.
This would take some skript knowledge, as it would require you to fill in specific blocks, marking 2 corners, etc.
Minehut's skript playlist can help you by clicking here