@shykitten55, the A(x) text is how tasker exports profiles as text. I like your idea of not hardcoding the ringer volume but I think it would be a problem if you actually tried it, especially with newer android versions.
After further testing, the original task did not work every time, it seems to have problems in the lock screen. I figured out the crux of the problem is to convince android it is supposed to play something for the ringer, and I do that now by very briefly having the sound on. I also added an 'if' statement to make sure it didn't make noise when the ringer was off, and a louder ring after 5 seconds of quiet ring. The revised profile is below, and I've also attached the profile xml file you can import into tasker by long pressing the 'Profiles' tab -> Import.
Profile: Vibrate then Ring (6)
Event: Phone Ringing [ Caller:* ]
Enter: Vibe then Ring (7)
Abort Existing Task
A1: If [ %SILENT ~ off ]
A2: Ringer Volume [ Level:1 Display:Off Sound:Off ]
A3: Wait [ MS:500 Seconds:0 Minutes:0 Hours:0 Days:0 ]
A4: Ringer Volume [ Level:0 Display:Off Sound:Off ]
A5: Wait [ MS:0 Seconds:5 Minutes:0 Hours:0 Days:0 ]
A6: Ringer Volume [ Level:3 Display:Off Sound:Off ]
A7: Wait [ MS:0 Seconds:6 Minutes:0 Hours:0 Days:0 ]
A8: Ringer Volume [ Level:6 Display:Off Sound:Off ]
A9: End If