For #1 I googled and tested
A LOT sometimes hours on end when I was too bored and never ever got it working...
I dont think its possible unless you make your own plugin using nativevotes
EDIT:
BREAKTHROUGH
Using plugins to set these to proper values (1 and an actual string)
"m_szTournamentEventName" to for example "Custom Test Tournament"
"m_szTournamentEventStage" to for example "Finals"
"m_bIsQueuedMatchmaking" to 1
"m_bIsValveDS" to 1
(Some might not be needed and you might ONLY have to set "m_szTournamentEventName" & "m_szTournamentEventStage" to something, I didnt test so far)
makes THIS APPEAR:
Altho the votes dont actually do anything you can now use nativevotes and another custom plugin to listen to the commands "callvote StartTimeOut" and "callvote Surrender" and so on and so on, to create a ingame vote for all the options.
Its work but fuck yeah it works! FINALLY I GOT SO FAR After hours and hours and hours, I am happy right now.
Will write a simple plugin later on to actually use them.
EDIT 2:
Through testing I found out you only have to set
"m_szTournamentEventName" to a string and set "m_bIsQueuedMatchmaking" to 1.
The issue with "m_bIsQueuedMatchmaking" is that it disables team switching, you will not be able to switch teams no matter what you do (Plugins can force teams but no ingame menu choice kinda sucks)
EDIT 3:
These are the commands that are being used when you click on one
ReadyForMatch = Warmup countdown start
NotReadyForMatch = Warmup countdown stop
PauseMatch = Pause Match
UnpauseMatch = Unpause Match
starttimeout = Start a Timeout
LoadBackup <filename>.txt = Load backup vote for wanted round
You can also use them in the console for example "callvote NotReadyForMatch".
EDIT 4:
I made a quick plugin you can use as a base, I do not recommend using it without modifying it but its your own choice.
GitHub Link
Note: I am bad at scripting so it might look bad or weird.