Update on progress.
Discovered the videorate element thanks to this thread.
After inserting a videorate and capsfilter into the pipeline, the fpsdisplaysink is reporting the expected rate.
Success came with this:
webrtcbin ! rtph264depay ! avdec_h264 ! videorate ! video/x-raw,framerate=30/1 ! videocrop ! ...
versus this:
webrtcbin ! rtph264depay ! avdec_h264 ! videocrop ! ...
Thank you.